您好,登錄后才能下訂單哦!
設計模式之工廠模式-抽象工廠模式
抽象工廠模式:
定義了一個接口用于創建相關或有依賴關系的對象簇,而無需明確指定具體類。
我們來看看使用抽象工廠模式來實現的披薩項目。
來源:凱哥Java(kaigejava)
先來看看項目結構:
說明:
1:工廠接口
2:兩個實現類
3:訂單對象
4:測試類。
看看具體代碼:
IFactoryInterface:
BeiJinFatory:
FactoryOrderPizza
測試類:
三種工廠模式:
1:把對象的實例化放在簡單的類里面,那么這種就是簡單工廠模式(也叫靜態工廠模式)
2:如果我們把對象實例化代碼進行抽象,抽象成創建對象的方法跟具體的實例化(也就是其子類),這種就是工廠方法模式。工廠方法模式的意義:將對象的創建過程,由原來的在類里面創建延遲到子類里面來創建對象了。
依賴抽象原則:
1:變量不要持有具體類的引用。
理解:A a = new A();這種方式就是變量a持有A對象的具體引用。在工廠模式中,我們可以這么做:A a = SF("A");或者是 A a = create("A");或者是A a = new Factory(new CreateA());
2:不要讓類繼承自具體類,要繼承自抽象接口或者抽象類。
我們需要知道,如果類A繼承具體的類B。這樣的強依賴關系不便于擴展。而我們使用接口或者抽象類的話,就很方便擴展了。
3:不要覆蓋基類中已經實現的方法
我們在設計基類的時候,已經實現的方法原則上是所有繼承此基類的子類公用的(通用的)方法。子類中無需進行覆蓋即可使用的。如我們披薩案例中的披薩烘培、切割以及打包方法。
說明:
通過本篇加前兩篇文章,我們已經把工廠模式講解完成了。但是,說實話,凱哥自己都感覺講的不是很明白。所以,在下一篇文章中,凱哥將對三種模式做對比,然后進行總結。希望可以通過下一篇文章能把工廠模式講解明白。
代碼已經上傳git上面了。
聯系凱哥--》凱哥Java(kaigejava)
或凱哥個人博客:www.kaigejava.com?個人博客上面可以私聊凱哥哦!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。