二 設計模式之工廠方法模式

定義 : 定義一個用於創建對象的接口,讓子類決定實例化哪一個類。工程方法使一個類的實例化延遲到其子類

類圖

 

通用代碼

 

 

 

 

優缺點

1.       良好的封裝性,代碼結構清晰。調用者只需知道產品類名,不必知道創建對的過程,降低了模塊間的耦合

2.       擴展性優秀。在新增產品的情況下,適當修改具體工廠類或擴展一個工廠類即可

3.       屏蔽產品類。產品類的實現如何變化,調用者無需關心,它只關心接口

4.       典型的解耦框架。符合迪米特法則,我不需要的不要去交流;符合依賴倒置原則,只依賴產品類的抽象;符合里氏替換原則,使用產品子類替換產品父類

使用場景

1.       需要生成對象的地方

2.       需要靈活,可擴展的框架時(POP3,IMAP,HTTP——>IConnecTMail)

3.       可以使用在異構環境中

4.       可以使用在測試驅動開發的框架下

擴展

簡單工廠模式:將原來的抽象工廠中的創建方法改成靜態方法

 

 

 

 

注意事項

工廠方法模式最好是與其他模式(如模板方法模式,單例模式,原型模式等)混合,如此可以變化出無窮的設計

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章