設計模式 工廠系列總結

2021-06-22 19:57:38 字數 1884 閱讀 2513

以交通工具舉例

給司機一輛車(也可以新增多型,讓司機選一輛車)

概念:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,factory method使乙個類的例項化延遲到了子類。

任意定製交通工具(多型)型別和生產過程

public inte***ce moveable 

public class car implements moveable

}public class plane implements moveable

}

public abstract class vehiclefactory 

public class ca***ctory extends vehiclefactory

}public class broomfactory extends vehiclefactory

}

public class test 

}

概念:提供乙個建立一系列相關或相互依賴物件的介面,而無須指定它們的具體類。與工廠方法不同在於抽象工廠建立一系列的多個產品。

控制系列產品(車,**,食品補給)生產替換

新增產品型別,以及對應的產品

public abstract class vehicle 

public class car extends vehicle

}public class broom extends vehicle

}

public abstract class food 

public void printname()

}public class mushroom extends food

}

public abstract class weapon 

public class ak47 extends weapon

}public class magicstick extends weapon

}

建立抽象工廠

public abstract class abstractfactory

public class defaultfactory extends abstractfactory

@override

public vehicle createvehicle()

@override

public weapon createweapon()

}

public class magicfactory extends abstractfactory 

@override

public vehicle createvehicle()

@override

public weapon createweapon()

}

新增客戶端**:

public class test 

}

總結:工廠方法與抽象工廠最大的區別和各自的優缺點:

對於普通的工廠,可以在產品這個維度進行擴充套件,可以產生新的產品和新的產品的工廠,但是如果產生產品系列(一系列不同類產品的具體產品),會出現工廠類氾濫的問題。抽象工廠解決這個問題,能產生新的產品系列。

而如果需要增加新的產品品種的話,這是需要修改抽象工廠介面增加新的方法,然後所有實現工廠增加新的方法。

大話設計模式系列 簡單工廠模式總結

emmm.之所以寫這個系列,是因為想去高階,感覺寫自己 不夠精簡,亢沉臃腫 想寫好寫優雅寫優秀,卻不知道是不是優秀,模稜兩可的感覺 想去入手原始碼,卻不知道從拿下手,又或者說看不懂,為什麼這麼寫。所以想入手設計模式系列,當然這些理解或者示例 是建立在 大話設計模式 程杰著的基礎之上的。感覺這本書還是...

設計模式 工廠系列

簡單工廠 特點 工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,客戶端中避免了和具體產品的依賴。缺點 當要繼續增加運算類時,需要在工廠類中增加相應的邏輯。違背了開放 封閉原則。工廠方法 特點 對每乙個產品都有對應的工廠,當增加新產品 在這裡就是增加運算類 時,只需要增加運算類和...

JAVA系列 設計模式 工廠模式

定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。類圖 這個我們平時接觸的比較多了,直接看 吧。注意要區分和抽象工廠的區別。抽象工廠設計模式 package factory 定義工廠方法所建立的物件的介面。author administrator public inte ce iworkf...