工廠模式:簡單的工廠模式,就是把物件的建立提出來單獨處理。而標準的工廠模式,定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。
抽象工廠模式:提供乙個介面,用於建立相關或依賴物件的家族,而不需要明確確定具體類。
簡單的工廠方法,常用於組織建立同一類物件的不同子類。
例如,抽象類pizza有很多種具體的實現子類,將建立乙個pizza物件的所有方法抽出,放到乙個pizzafactory中,通過不同的type實現建立不同的具體物件。這樣可以將具體實現與使用分離。可以更好的管理pizza的建立工作。
class pizzafactory else
if ("clam".equals(type))
return pizza;
}}
標準工廠方法模式,將物件的建立抽出到子類,父類不關心物件具體是哪一種,只關心物件的通用行為和方法,和建立方式。
public
abstract
class pizzastore
}
如上所示,父類是乙個抽象的構造pizza(產品)的方法,具體建立pizza的型別由子類實現createpizza()方法。
工廠模式的優點是,將建立物件的公共**抽出介面來,這樣可以將對具體實現的依賴改為對介面的依賴,**會更有彈性,易於進行修改擴充套件等維護。
工廠模式還實現了依賴倒置原則,如果按照沒有模式的方式寫**,pizza的應用方會依賴pizza的實現方,用工廠模式後,pizza的應用方和pizza的實現方都依賴createpizza()方法所在的抽象層。
java設計模式 工廠模式
工廠模式 存在的目的 定義乙個用於建立複雜類的物件的介面。使用工廠模式,降低了類與類之間的耦合關係。分為三種實現方式 類之間的繼承結構不同 簡單工廠模式 工廠方法模式 抽象工廠模式。主要涉及的三種類 呼叫工廠的類,工廠類,產品類。先看乙個不適用工廠模式的類組織 class bmw32 class b...
JAVA設計模式 工廠模式
一 簡單工廠。它的缺點很明顯,當需要再新增乙個whitehuman類時,需要在工廠類中修改,則 的耦合性很高。建立需要用工廠new的class public inte ce human public class blackhuman implements human public class yel...
java設計模式 工廠模式
靜態工廠模式 為了建立物件而產生 1 有工廠類,有乙個可以根據需求返回建立的物件的方法 2 工廠類中的產生物件的方法的返回值型別是 父類的型別,產生的物件都是子類物件 3 強調 工廠類中的方法的返回值和返回的物件中存在著向上轉型的關係 public class cloth public class ...