設計模式之工廠模式
1、什麼是工廠模式?
工廠模式主要是爲創建對象提供過渡接口,以便將創建對象的具體過程屏蔽隔離起來,達到提高靈活性的目的。
2、簡單工廠模式
抽象產品:在java中是接口
具體產品:在java中實現上述接口
工廠產品:在java中由一個具體類實現
3、工廠方法模式:
抽象工廠:具體工廠不必須實現的接口或者必須繼承的父類
具體工廠:在java中由具體的類來實現上述接口
抽象產品:在java中一般是抽象類或者接口
具體產品:在java中由具體的實現類來實現上述接口和抽象類
4、抽象工廠模式:
抽象工廠:具體工廠不必須實現的接口或者必須繼承的父類
具體工廠:在java中由具體的類來實現上述接口
抽象產品:在java中一般是抽象類或者接口
具體產品:在java中由具體的實現類來實現上述接口和抽象類
5、工廠方法模式和抽象工廠模式的區別:
在抽象工廠模式中,抽象產品 (AbstractProduct) 可能是一個或多個,從而構成一個或多個產品族(Product Family)。 在只有一個產品族的情況下,抽象工廠模式實際上退化到工廠方法模式。
產品族和等級結構兩廂車和三廂車稱爲兩個不同的等級結構;而2.0排量車和2.4排量車則稱爲兩個不同的產品族。
再具體一點,2.0排量兩廂車和2.4排量兩廂車屬於同一個等級結構,2.0排量三廂車和2.4排量三廂車屬於另一個等級結構。
而2.0排量兩廂車和2.0排量三廂車屬於同一個產品族,2.4排量兩廂車和2.4排量三廂車屬於另一個產品族。
明白了等級結構和產品族的概念,就理解工廠方法模式和抽象工廠模式的區別了,
如果工廠的產品全部屬於同一個等級結構,則屬於工廠方法模式;
如果工廠的產品來自多個等級結構,則屬於抽象工廠模式。
6、設計模式中的開閉原則
它的核心是:對擴展開放,對修改關閉