設計模式 工廠模式

2021-10-01 23:29:17 字數 764 閱讀 4154

定義:定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。這滿足建立型模式中所要求的「建立與使用相分離」的特點。

特點:使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程;

在系統增加新的產品時只需要新增具體產品類和對應的具體工廠類,無須對原工廠進行任何修改,滿足開閉原則;

結構:抽象工廠(abstract factory):提供了建立產品的介面,呼叫者通過它訪問具體工廠的工廠方法 newproduct() 來建立產品。

具體工廠(concretefactory):主要是實現抽象工廠中的抽象方法,完成具體產品的建立。

抽象產品(product):定義了產品的規範,描述了產品的主要特性和功能。

具體產品(concreteproduct):實現了抽象產品角色所定義的介面,由具體工廠來建立,它同具體工廠之間一一對應。

實現:

擴充套件:當需要生成的產品不多且不會增加,乙個具體工廠類就可以完成任務時,可刪除抽象工廠類。這時工廠方法模式將退化到簡單工廠模式

場景:客戶只知道建立產品的工廠名,而不知道具體的產品名。如 tcl 電視工廠、海信電視工廠等。

建立物件的任務由多個具體子工廠中的某乙個完成,而抽象工廠只提供建立產品的介面。

客戶不關心建立產品的細節,只關心產品的品牌。

缺點:每增加乙個產品就要增加乙個具體產品類和乙個對應的具體工廠類,這增加了系統的複雜度。

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...