角色組成 圖示
上**
//簡單工廠
class
driver
}
角色組成 圖示
上**
//抽象工廠
abstract
class
driver
//具體工廠(每個具體工廠負責乙個具體產品)
class
benzdriver
extends
driver
}class
bmwdriver
extends
driver
}
總結
廠方法模式中我們把生成產品類的時間延遲,就是通過對應的工廠類來生成對應的產品類,在這裡我們就可以實現「開發-封閉」原則,無論加多少產品類,我們都不用修改原來類中的**,而是通過增加工廠類來實現。但是這還是有缺點的,如果產品類過多,我們就要生成很多的工廠類。假如我們要實現的產品介面不止乙個,也就是有多個產品介面,不同產品介面有對應的產品族。什麼是產品族呢?簡單的理解就是,不同牌子產的車裡面會有跑車型別,家庭型別,商用型別等的車,不同牌子的車的跑車型別的車可以組成乙個產品族。對於這種情況我們可以採用抽象工廠模式。
角色組成 圖示
源**
//抽象工廠
abstract
class
driver3
//具體工廠
class
sportdriver
extends
driver3
public bmwcar createbmwcar
(string car)
throws exception
public audicar createaudicar
(string car)
throws exception
}class
businessdriver
extends
driver3
public bmwcar createbmwcar
(string car)
throws exception
public audicar createaudicar
(string car)
throws exception
}
簡單工廠,工廠方法,抽象工廠
簡單工廠,工廠方法,抽象工廠都屬於設計模式中的建立型模式。其主要功能都是幫助我們把物件的例項化部分抽取了出來,優化了系統的架構,並且增強了系統的擴充套件性。本文是本人對這三種模式學習後的乙個小結以及對他們之間的區別的理解。簡單工廠 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數的不同來返回不...
簡單工廠 工廠方法 抽象工廠
簡單工廠 乙個工廠類 根據傳入的參量決定建立出哪一種產品類的例項 直接乙個工廠類,內部通過 swith operator add類實現該介面 adddao implements dao dao的實現類 客戶端 dao dao new adddao dao.createoper 產生物件 這樣如果需要...
簡單工廠 工廠方法 抽象工廠
一 簡單工廠 factory 集中管理物件的產生,業務 只需要呼叫相應的方法,傳入不同的引數區分物件,就能得到想要的物件了 把業務 和對應的物件解耦 建立乙個抽象類 public abstract class cellphone public abstract void show 建立實現抽象類的實...