1. 程式人生 > >經典23種設計模式

經典23種設計模式

六大設計原則:

單一原則:對於一個類或者介面來說,職責應該單一化。

里氏代換原則:子類必須擁有父類的全部能力,並且才可以在次基礎上擴充套件。(里氏代換原則是對實現抽象化的具體步驟的規範)。

開放-封閉原則:程式的實體物件應該可以進行擴充套件,但不應該可以修改。開放-封閉原則的核心就是面向抽象程式設計。

依賴倒轉原則:設計程式的時候,應該是實現依賴於抽象,而不是抽象依賴於實現。鼓勵面向介面程式設計,讓抽象使得各個類和模組實現彼此獨立。

合成/聚合原則:儘量不使用繼承,應儘量使用合成/聚合。其實就是介面和抽象類的區別,應該用“has-a”而不是用“is-a”,“is-a”會導致父類子類關係過於複雜。

迪米特法則:兩個類直接不應該直接通訊,如果要互相呼叫,應該使用一箇中介類來轉發這個呼叫。強調在類的結構設計上,應保護好自己的資訊,因為資訊隱蔽性越好,軟體複用性越高。

建立型模式:

工廠方法模式:提供一個用於建立物件的介面,讓子類決定例項化哪一個類。工廠方法使一個類的例項化延遲到其子類。

抽象工廠模式:提供一個建立一系列的物件的介面,而不需指定它們具體的類。(和建造者模式很像,抽象工廠模式注重瞭如何獲取一個例項)。

單例模式:保證一個類僅有一個例項。

建造者模式:將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。(注重瞭如何建造一個例項)。

原型模式:

用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。(典型的是clone方法,不用去例項化一個物件而直接建立,提升了效能和效率)。

未完待續……………………………………