設計模式 工廠模式(Factory)

2021-06-28 08:48:24 字數 1024 閱讀 2763

除了使用new關鍵字以外,還有更多製造物件的方法。new意味著在例項化乙個具體的類,所以物件的方法是準確的實現,而非抽象的方法定義。因此這樣一來**將會缺乏彈性。

我們針對介面程式設計,可以隔離掉以後系統中可能發生的一大堆改變,如果**針對介面來寫,那麼對於乙個方法的實現將會是多種多樣的。當**使用大量具體類時,一旦加入新的類,那麼就需要修改大量的**。也就是說**並非對」修改關閉「。想用新的具體型別來擴充套件**,就必須要重新開啟它。

工廠處理建立物件的細節。由於實際執行中不同的物件會對類有多種多樣的要求,將建立物件包裝進乙個類中,當以後實現改變時,只需要改變這個類即可。

簡單工廠並不是乙個設計模式,反而比較像是一種程式設計習慣。

首先定義乙個公共介面

inte***ce component

其次是兩種實現

class obj1 : component

public void operation()

}class obj2 : component

public void operation()

}

最後是簡單工廠

class fatory

else

}}

工廠方法模式定義了乙個建立物件的介面,但由於子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。

**裡減少對具體類的依賴是好事,「依賴倒置原則」:要依賴抽象,不要依賴具體類。

1)變數不可以持有具體類的引用。(可以改用工廠來避開這樣的做法)

2)不要讓類派生自具體類。

3)不要覆蓋基類中已經實現的方法。(如果覆蓋基類已經實現的方法,說明該基類不是乙個真正適合被繼承的抽象。基類中已經實現的方法,應該由所有的子類共享。)

抽象工廠模式提供了乙個介面,用於建立相關或者依賴物件的家族,而不需要明確指明具體類。

抽象工廠允許客戶使用抽象的介面來建立一組相關的產品,而不需要知道實際產出的產品是什麼。

設計模式之Factory 工廠模式

工廠模式是很常見的一種模式,主要由三個元素構成 生產者 產品和購買者 1.生產者 根據產品名稱或者產品的特性生產相應的產品 2.產品 具有某種共性的產品,把產品的共性抽象到介面中,而每一種具體的產品針對本身特有的性質來實現介面方法 3.購買者 購買者向生產者訂購某種產品,生產者將產品生產出來交給購買...

設計模式 2 工廠模式(Factory)

個人而言我認為工廠模式是應用最為廣泛的一種模式了,工廠模式也屬於建立型模式,一般來說分為 簡單工廠模式 抽象工廠 abstactfactory 模式。這個模式有什麼好處呢?我們可以通過下面這個例子來 假設工廠生產一些了很多種產品,並且需要為這些產品設計很多的包裝,每個產品用來展示用各自的包裝設計展示...

設計模式 6 工廠模式Factory

工廠模式有三種 簡單工廠模式,抽象工廠模式和工廠方法模式。1 簡單工廠模式 以圖形為例 圖形介面 inte ce shape 圓形 class circle implements shape 矩形 class rectangle implements shape 圖形工廠 class shapefa...