將例項化物件的**提取出來,放到乙個類中統一管理和維護,達到和主專案依賴關係的解耦。從而提高專案的擴充套件和維護性。
一、簡單工廠模式
定義了乙個建立物件的類,由這個類來封裝例項化物件的行為**。
由乙個工廠物件決定建立出哪一種產品類的例項。
披薩的種類很多 比如 greekpizza、cheesepizza、pepperpizza等
披薩的製作有 prepare(準備),bake(烘烤), cut(切片), box(打包)
完成披薩店訂購功能。
方案:把建立pizza的物件封裝到乙個類中,這樣我們有新的pizza種類時,只需要修改該類即可,其它有建立pizza物件的**就不需要修改了。
二、工廠方法模式:
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。
工廠方法模式將物件的例項化推遲到子類。
抽象產品類product:定義產品的共性,實現對事務最抽象的定義
抽象工廠creator:具體如何建立產品類是由工廠實現類concretecreator完成。
比如:北京的cheesepizza、北京的pepperpizza等或者是倫敦的cheesepizza、倫敦的pepperpizza等
方案:將披薩專案的例項化功能抽象成抽象方法,在不同的口味點餐子類中具體實現。
三、抽象工廠模式
為建立一組相關或相互依賴的物件提供一種介面,而且無需指定他們的具體類
四、jdk中的calendar類使用了簡單工廠方法模式
設計模式 設計模式之工廠模式
工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...
c 設計模式 之 工廠模式之 工廠模式
1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...
設計模式 工廠模式之簡單工廠模式
定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...