什麼是設計模

2021-10-25 07:20:36 字數 1549 閱讀 9135

設計模式(design pattern)是前輩們對**開發經驗的總結,是解決特定問題的一系列套路。它不是語法規定,而是一套用來提高**可復用性、可維護性、可讀性、穩健性以及安全性的解決方案。

1995 年,gof(gang of four,四人組/四人幫)合作出版了《設計模式:可復用物件導向軟體的基礎》一書,共收錄了 23 種設計模式,從此樹立了軟體設計模式領域的里程碑,人稱「gof設計模式」。

這 23 種設計模式的本質是物件導向設計原則的實際運用,是對類的封裝性、繼承性和多型性,以及類的關聯關係和組合關係的充分理解。

當然,軟體設計模式只是乙個引導,在實際的軟體開發中,必須根據具體的需求來選擇:

建立型模式:5鐘,物件例項化的模式,建立型模式用於解耦物件的例項化過程。

工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構性模式:7種,把類或物件結合在一起形成乙個更大的結構。

介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式:11種,類和物件如何互動,及劃分責任和演算法。

策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式

狀態模式、訪問者模式、中介者模式、直譯器模式。

總原則:開閉原則

開閉原則就是說對外擴充套件開放,對修改關閉。當程式需要擴充套件的時候,不去修改原有的**,而是要擴充套件原有**,實現乙個熱插拔的效果。為了達到這樣的效果,需要實現抽象類和介面等。

1,單一責任原則

不要存在多於乙個導致類變更的原因,也就是說每個類應該實現單一的職責,如若不然,就應該把類拆分。

2,黎克特制替換原則

黎克特制代換原則(liskov substitution principle lsp)物件導向設計的基本原則之一。 黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現。 lsp是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎上增加新的行為。黎克特制代換原則是對「開-閉」原則的補充。實現「開-閉」原則的關鍵步驟就是抽象化。而基類與子類的繼承關係就是抽象化的具體實現,所以黎克特制代換原則是對實現抽象化的具體步驟的規範

黎克特制替換中,子類對父類的方法經量不要重寫和過載,因為弗雷定義好了結構,通過規定的介面與外界互動,子類不應該隨便的破壞它。

3,依賴倒轉原則

這個是開閉原則的基礎,具體內容:面向介面程式設計,依賴於抽象而不依賴於具體。寫**時用到具體類時,不與具體類互動,而與具體類的上層接**互

4,介面隔離原則(inte***ce segregation principle)

這個原則的意思是:每個介面中不存在子類用不到卻必須實現的方法,如果不然,就要將介面拆分。使用多個隔離的介面,比使用單個介面(多個介面方法集合到乙個的介面)要好。

5,迪公尺特法則(最少知道原則)

就是說:乙個類對自己依賴的類知道的越少越好。也就是說無論被依賴的類多麼複雜,都應該將邏輯封裝在方法的內部,通過public方法提供給外部。這樣當被依賴的類變化時,才能最小的影響該類。也就是說要求陌生的類不要作為區域性變數出現在類中,

6,合成復用原則:

意思就是經量首先使用合成/聚合的方式,而不是使用繼承。

什麼是STN黃綠模 什麼是藍模 什麼是灰模

液晶顯示所用的液晶材料是一種兼有液態和固體雙重性質的有機物,它的棒狀結構在液晶盒內一般平行排列,但在電場作用下能改變其排列方向。對於stn lcd,液晶的扭曲角更大,所以對比度更好,視角更寬。stn lcd是基於雙折射原理進行顯示,它的基色一般為黃綠色,字型黑色,成為黃綠模。當使用紫色偏光片時,基色...

php的mvc設計模式,什麼是MVC設計模式?,

詳細內容 model view controller簡稱mvc,即模型檢視控制器。mvc設計模式指定應用程式由資料模型 呈現資訊和控制資訊組成。該模式要求將每個模式分成不同的物件。mvc更像是一種架構模式,但並不適用於完整的應用程式。mvc主要與應用程式的ui 互動層有關。你仍然需要業務邏輯層,可能...

瘋狂模渲大師 什麼是室內設計?是免費設計嗎?

寫在前面 我們有親戚朋友裝修時,總會聽到他們說些這樣的話。不就是裝個修,請啥設計師啊?給房子裡 公司 娛樂場所等等空間的牆地頂來點花樣,再選選陳設 擺件,搭配搭配什麼風格?而且設計師收費還那麼貴?自己搜搜 參照下不就行了嗎!高能預警 群主早就料到他們會這樣。群主建議各位設計師既肯定又明確地回答他們,...