23中设计模式之抽象工厂模式
抽象工廠模式的定義
定義: 為創建一組相關或互相依賴的對象提供一個接口,而且無須制定它們的具體類
抽象工廠模式的實現
兩個產品族, 其類圖如下:
?
抽象產品類代碼如下:
?
產品A的1級和2級類代碼如下:
?
產品B與產品A類似
抽象工廠類 AbstractCreator 的職責是定義 每個工廠要實現的功能,其代碼如下:
?
如何創建產品,則是由具體的實現類來完成的, Creator1 和 Creator2代碼如下:
?
這樣在使用時,我們只要知道它的工廠方法就可以直接產生一個產品對象,無需關心它的實現類
抽象工廠模式的優缺點
優點如下;
缺點如下:
注意: 我們說抽象工廠模式的產品族擴展比較困難,但是產品等級擴展是非常容易的, 增加一個產品等級, 只要增加一個工廠類負責新增加出來的產品生產任務即可.
抽象工廠模式的使用場景
一個對象族(或是一組沒有任何關系的對象)都有相同的約束,則可以使用抽象工廠模式.
例如一個文本編輯器和一個圖片處理器, 都是軟件實體, 但是Unix下的文本編輯器和Windows下的文本編輯器雖然功能和界面都相同,但是代碼實現是不同的,圖片處理器也有類似情況. 也就是具有了共同的約束條件: 操作系統. 于是我們可以使用抽象工廠模式, 產生不同操作系統下的編輯器和圖片處理器
抽象工廠模式是一個簡單的模式,使用的場景非常多,在軟件產品生產過程中,涉及不同操作系統的時候,都可以考慮使用抽象工廠模式, 例如一個應用, 需要在三個不同平臺(Windows, Linux, Android)上運行, 就可以通過抽象工廠模式屏蔽掉操作系統對應用的影響. 三個不同操作系統上的軟件功能、應用邏輯、UI都應該是非常類似的, 唯一不同的是調用不同的工廠方法,由不同的產品類去處理與操作系統交互的信息
總結
以上是生活随笔為你收集整理的23中设计模式之抽象工厂模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php imagick手册,PHP中使用
- 下一篇: c语言 为什么i%3cn 1,c语言中n