實現了建立者和呼叫者分離,工廠模式分為簡單工廠、工廠方法、抽象工廠模式
工廠模式是我們最常用的例項化物件模式了,是用工廠方法代替new操作的一種模式。
利用工廠模式可以降低程式的耦合性,為後期的維護修改提供了很大的便利。
將選擇實現類、建立物件統一管理和控制。從而將呼叫者跟我們的實現類解耦。
簡單工廠模式相當於是乙個工廠中有各種產品,建立在乙個類中,客戶無需知道具體產品的名稱,只需要知道產品類所對應的引數即可。但是工廠的職責過重,而且當型別過多時不利於系統的擴充套件維護。
大家注意 工廠和容器的概念, 容器存放,工廠建立。
請看目錄結構:
car介面定義:
package factorymodel;
//汽車廠
public inte***ce car
實現類,各種車型:
package factorymodel;
public class bydcar implements car
}
package factorymodel;
public class jilicar implements car
}
定義工廠:
package factorymodel;
//汽車廠
public class ca***ctory
if (name.equals("吉利"))
//其他型別的
return null;
}
}
定義客戶端:
package factorymodel;
public class client
}
執行結果:
簡單工廠模式:裡面的場景多 傳遞引數 返回具體產品 但是型別很多時候就影響擴充套件性了 很麻煩了
單工廠的優點/缺點
優點:簡單工廠模式能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。明確區分了各自的職責和權力,有利於整個軟體體系結構的優化。
缺點:很明顯工廠類集中了所有例項的建立邏輯,容易違反graspr的高內聚的責任分配原則
簡單工廠模式 又叫 靜態工廠方法模式 它定義乙個具體的工廠類負責建立一些類的例項
優點 客戶端不需要負責物件的建立 從而明確了個各類的職責
缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護
工廠模式 簡單工廠
簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫bbk 必敗客 披薩,賣很多種披薩 芝士披薩 榴蓮披薩等等,我有乙個orderpizza string type 方法,根據客戶傳來的type來提供不同的披...
工廠模式 簡單工廠
工廠 處理建立物件的細節。目的 將例項化具體類的 從應用中抽離,或者封裝起來,可以避免干擾應用的其他部分。簡單工廠 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。產品實現 desc 產品a public inte ce a class a1 implements a override pub...
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...