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

2021-09-19 15:01:51 字數 1320 閱讀 4728

工廠方法模式意圖:乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法模式是以乙個類的例項化延遲到其子類

factory method模式用於在不指定待建立物件的具體類的情況下建立物件。

factory method模式的主要意圖是隱藏物件建立的複雜性。client通常不指定要建立的具體類,client將面向介面或抽象類進行編碼,讓factory類負責建立具體的型別。通常factory類有乙個返回抽象類或者介面的靜態方法。client通常提供某種資訊讓factory類使用提供的資訊來確定建立並返回哪個子類。

將建立子類的責任抽象出來的好處是允許client完全無需考慮依賴類是如何建立的,這遵守依賴倒置原則(dependency inversion principle,dip)。factory method模式另外乙個好處是把負責物件建立的**集中起來,如果需要修改物件生成方式,可以輕鬆定位並更新,而不會影響到依賴它的**。

在物件導向程式設計中,一般方法是用乙個new操作符產生乙個物件的例項。但是在一些情況下,用new操作符直接生成物件會帶來一些問題。首先,要使用new運算子建立乙個物件必須清楚所要建立的物件的類資訊,包括類名、建構函式等,而有時並不現實。其次許多態別的物件建立需要一系列的步驟,可能需要計算或取得物件的初始設定,選擇生成那個子物件例項,或在生成需要的物件之前必須生成一些輔助功能的物件。在這些情況下,新物件的建立就是乙個過程,而不是乙個簡單的操作。為輕鬆方便地完成複雜物件的建立,從而引入了工廠模式。

public abstract class product

public class producta : product

}public class productb:product

}public abstract class factory

public class factorya : factory

}public class factoryb : factory

}class program

console.readline();

}}

工廠方法模式與簡單工廠模式區別

/// /// 簡單工廠,和工廠模式對比用

///

public class easyfactory

}}

原始碼位址

dotnet-design-patterns

其他設計模式

23種設計模式

設計模式 工廠模式(Factory)

除了使用new關鍵字以外,還有更多製造物件的方法。new意味著在例項化乙個具體的類,所以物件的方法是準確的實現,而非抽象的方法定義。因此這樣一來 將會缺乏彈性。我們針對介面程式設計,可以隔離掉以後系統中可能發生的一大堆改變,如果 針對介面來寫,那麼對於乙個方法的實現將會是多種多樣的。當 使用大量具體...

設計模式之Factory 工廠模式

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

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

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