物件導向設計模式(工廠模式)

2021-10-07 04:36:00 字數 1503 閱讀 3152

1:單一職責原則

-其實就是「高內聚,低耦合」。每個類應該只有乙個職責,對外只能提供一種功能,而引起類變化的原因應該只有乙個。

2:開閉原則

-核心思想就是:對擴充套件開放,對修改關閉

3:裡式替換原則

-核心思想:在任何父類出現的地方都可以用子類來替代。也就是說在同乙個繼承體系中的物件應該有共同的行為特徵。

4:依賴倒轉原則

-要依賴於抽象和介面,不要依賴於具體實現。

5:介面分離原則

-核心思想:不應該強迫程式依賴它們不需要使用的方法。即乙個介面不需要提供太多的行為,乙個介面應該只提供一種對外的功能,不應該把所有的操作都封裝到乙個介面中。

6:迪公尺特原則

-核心思想:乙個物件應當對其他物件盡可能少的了解。即降低各個物件之間的耦合性,提高系統的可維護性,在模組之間應該只通過介面程式設計,而不理會模組內部的工作原理,它可以使各個模組的耦合度降到最低,促進軟體的復用。

總體上來說設計模式分為三類23種:

1:工廠模式

工廠類擁有乙個工廠方法(create),接受了乙個引數,通過不同的引數例項化不同的產品類

工廠方法是針對每一種產品提供乙個工廠類。

通過不同的工廠例項來建立不同的產品例項

優點:1:工廠方法模式很好的減輕了工廠類的負擔,把某一類/某一種東西交由乙個工廠生產;

2:同時增加某一類東西並不需要修改工廠類,只需要新增生產這類東西的工廠即可,使得工廠類符合開放封閉原則

缺點:1:對於某些可以形成產品族的情況比較複雜

抽象工廠是應對產品族概念的

例如:汽車可以分為轎車、suv、mpv等,也分為寶馬、特斯拉等。將寶馬的所有車型看做是乙個產品族,特斯拉的所有車看作是另外乙個產品族。分別對應兩個工廠,乙個寶馬工廠,乙個特斯拉工廠。與工廠方法不同,寶馬的工廠不僅僅只生產具體的某乙個型號的產品,而是一族產品(寶馬轎車、寶馬suv、寶馬mpv)。「抽象工廠」的「抽象」指的就是這個意思

上面的工廠方法模式是一種極端的抽象工廠模式(即只生產一種產品的抽象工廠模式),而抽象工廠模式可以看做工廠方法模式的一種推廣。

1:簡單工廠:用來生產同一等級結構中的任意產品。(不支援拓展增加產品)

2:工廠方法:用來生產同一等級結構中的固定產品。(支援拓展增加產品)

3:抽象工廠:用來生產不同產品族的全部產品。(不支援拓展增加產品,支援增加產品族)

物件工廠設計模式

如果你在你的某個系統中增加了乙個子類,你要建立這個子類的物件,但又不想改變任何原有 有可能麼?答案是肯定的,用 物件工廠 設計模式。物件工廠 object factory 是gof 23種設計模式之外的模式,它既不是抽象工廠 abstract factory 也不是工廠方法 factory meth...

物件導向 設計模式

提到設計模式,不得不感謝gof gang of four,四人組 他們1995年出版的 設計模式 一書,第一次將設計模式提公升到理論高度,並將之規範化。書中一共總結了23種基本的設計模式。而這23中設計模式幾乎涵蓋了物件導向設計過程中所有問題的解決方案。書中提到的23種設計模式分別是 1.單例模式 ...

設計模式 物件導向

所謂的設計原則也好,設計模式也罷,無非是在物件導向的前提下產生的。而物件導向的前提是抽象,物件導向的三大特徵是封裝 繼承 多型。為了從本質上理解設計模式,下面我們分析一下這些概念之間的關係。請看下圖 物件導向思想的前提是抽象,從現實世界中抽象出一些物件或者類的共性之後封裝成類或者抽象類或者介面。這些...