從設計模型的型別來講,簡單的工廠模式屬於建立型模式,又叫靜態工廠方法模式,簡單的工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。
簡單工廠模式的實質是由工廠類根據傳入的引數,動態決定應該建立哪種產品類(這些產品類繼承自乙個父類或實現乙個介面)的例項。
工廠(creator)角色
簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類可以被外界直接呼叫,建立所需的產品物件。
抽象產品(product)角色
簡單工廠模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。
具體產品(concrete product)角色
是簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。
舉例說明:
public inte***ce animal
public class cat implements animal}
public class dog implements animal}
public class animalfactory else if (animal.equals("狗")) else}}
public class animalsound
}
public class animalsound
}
傳入不同的引數,將呼叫不同的產品類執行相應的方法。
優點:呼叫者可以不必考慮如何建立物件,而只通過傳入引數進行呼叫就可以了。
缺點:如果要增加產品,只能改變工廠。如果產品類經常增加,那麼,對於具體產品型別和條件引數的判斷會很多,對系統的擴充套件和維護非常不利。
應用:因為它的優缺點,所以,工廠類負責建立的物件比較少,客戶只知道傳入工廠類的引數,對於如何建立物件(邏輯)不關心的情況;
工廠模式之一 簡單工廠模式
在物件導向程式設計中,產生乙個物件例項最常用的方法是使用new關鍵字來建立,但這樣耦合度太高,如果建立此物件時,需要一些其他的操作,這些 建立物件和一些其他的操作 如果沒有封裝起來給客戶端使用,客戶端大量使用這些 一旦這些重複的操作需要更改,那麼帶來的工作量將是巨大的,也不利於擴充套件。所以我們建立...
設計模式 工廠模式(簡單工廠模式和方法工廠模式)
一 簡單工廠模式 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 動物類 ...
設計模式粗淺理解之一 簡單工廠模式
設計模式粗淺理解之 簡單工廠模式 什麼是簡單工廠模式 從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最...