設計模式之工廠模式

2021-07-24 05:15:18 字數 547 閱讀 4383

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

工廠方法模式能夠封裝具體型別的例項化。看看下面的類圖,抽象的creator提供了乙個建立物件的方法的介面,也成為「工廠方法」。在抽象的creator中,任何其他實現的方法,都可能使用到這個工廠方法所製造出來的產品,但只有子類真正實現這個工廠方法並建立產品。

當只有乙個concretecreator的時候,工廠方法模式有什麼優點?

儘管只有乙個具體建立者,工廠方法模式依然很有用,因為它幫助我們將產品的「實現」從「使用」中解耦。如果增加產品或者改變產品的實現,creator並不會受到影響(因為creator與任何concreteproduct之間都不是緊耦合)。

工廠方法和建立者是否總是抽象的?

不,可以定義乙個預設的工廠方法來產生某些具體的產品,這麼一來,即使建立者沒有任何子類,依然可以建立產品。

......

......

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...

c 設計模式 之 工廠模式之 工廠模式

1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...