將例項化新物件的過程(即new語句)從原有**中分離出來,單獨封裝在乙個類中,並將例項化物件的結果作為返回值返回,這個用來處理建立物件細節的類稱為「工廠(factory)」,而建立的物件為工廠的產品(product)。當需要建立物件時,通過工廠類進行,還可以通過建構函式傳入乙個引數,根據引數選擇具體例項化哪個類。被建立的例項通常都具有共同的父類,它返回這個產品的父類物件,而這個父類物件已經在例項化時利用多型指向某乙個具體的產品子類。
return pizza; //cheesepizza等四種都為父類pizza類的子類,這裡通常返回父類物件
} }
簡單工廠模式的核心思想就是,有乙個專門的類來負責建立例項的過程。使使用者根據引數獲得對應的類例項,避免了直接例項化類,降低了耦合性。當新增新的類時,只需修改工廠類中的**,而不需要修改呼叫者(即客戶)類中**。
缺點是可例項化的型別在編譯期間已經被確定,如果增加新型別,則需要修改工廠,不符合開放-關閉原則。
java設計模式之 工廠模式(1)簡單工廠模式
簡單工廠模式也被稱為靜態工廠模式。工廠模式的主要作用是統一管理實現類的建立 以及減小模組之間的耦合程度。簡單工廠模式通過簡單地統一建立某個介面的實現類,來使呼叫者與被呼叫者耦合度降低,下面給出例子 inte ce stationarymaker class penmaker implements s...
java設計模式 簡單工廠模式
大話設計模式 第一章 package ch01 public abstract class operation public void setnumbera double numbera public double getnumberb public void setnumberb double n...
java設計模式 簡單工廠模式
簡單工廠模式 所謂的工廠模式就是用乙個類專門來建立物件,建立的類有共同的父類。簡單工廠模式的實質是建立乙個工廠類的方法,通過其引數傳入要建立的類。然後將其建立出來。在簡單工廠模式中,工廠類是整個模式的關鍵,其包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟建立哪個類的例項,外界可以不用去關注物件...