簡單工廠:
特點:工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,客戶端中避免了和具體產品的依賴。
缺點:當要繼續增加運算類時,需要在工廠類中增加相應的邏輯。違背了開放
-封閉原則。
工廠方法:
特點:對每乙個產品都有對應的工廠,當增加新產品
(在這裡就是增加運算類
)時,只需要增加運算類和相應工廠,不需要修改,彌補了簡單工廠的不足。由子類決定例項化哪乙個類,使乙個類的例項化延遲到其子類。
缺點:當產品數量過多時,會造成工廠氾濫。
客戶端**:
ifactory factory = new addfactory();
operation oper = factory.createoperation();
double result = oper.getresult();
抽象工廠:
特點:支援一系列產品的擴充套件及建立。產品系列的交換容易。
客戶端**:
ifactory factory = new sqlserver
factory();
iuser user = factory.createuser();
idepartment dep = factory.createuser();
JAVA系列 設計模式 工廠模式
定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。類圖 這個我們平時接觸的比較多了,直接看 吧。注意要區分和抽象工廠的區別。抽象工廠設計模式 package factory 定義工廠方法所建立的物件的介面。author administrator public inte ce iworkf...
設計模式系列 抽象工廠模式
如圖,factorya專心負責生產producta,factoryb專心負責生產productb,factorya和factoryb之間沒有關係 如果到了後期,如果需要生產productc時,我們則可以建立乙個factoryc工廠類,該類專心負責生產productc類產品。由於factorya fa...
設計模式系列 抽象工廠模式
抽象工廠模式為建立一組物件提供了一種解決方案。與工廠方法模式相比,抽象工廠模式中的具體工廠不只是建立一種產品,它負責建立一族產品。例如海爾電器工廠生產的海爾電視機 海爾電冰箱,海爾電器廠1生產電視機型別1和電冰箱型別1,海爾電器廠2生產電視機型別2和電冰箱型別2,這個時候就必須要用抽象工廠模式了,工...