摘要:工廠方法模式的擴(kuò)展性非常的好,在增加產(chǎn)品類(lèi)的情況下,只需要適當(dāng)?shù)男薷木唧w的工廠類(lèi)或擴(kuò)展一個(gè)工廠類(lèi),就可以完成。屏蔽產(chǎn)品類(lèi)高度結(jié)偶一個(gè)簡(jiǎn)單工廠模式實(shí)例定義產(chǎn)品接口實(shí)現(xiàn)個(gè)產(chǎn)品類(lèi)定義工廠接口實(shí)現(xiàn)工廠類(lèi)業(yè)務(wù)場(chǎng)景運(yùn)行結(jié)果至此,一個(gè)簡(jiǎn)單工廠就完成了。
工廠模式的優(yōu)點(diǎn):
1 良好的封裝型,代碼結(jié)構(gòu)清晰,一個(gè)對(duì)象創(chuàng)建是有條件約束的,如果一個(gè)調(diào)用者需要一個(gè)具體的產(chǎn)品對(duì)象,只需要知道這個(gè)產(chǎn)品的類(lèi)名就可以了,不用知道創(chuàng)建對(duì)象的艱辛過(guò)程,降低模塊間的耦合性。
2 工廠方法模式的擴(kuò)展性非常的好,在增加產(chǎn)品類(lèi)的情況下,只需要適當(dāng)?shù)男薷木唧w的工廠類(lèi)或擴(kuò)展一個(gè)工廠類(lèi),就可以完成。
3 屏蔽產(chǎn)品類(lèi)
4 高度結(jié)偶
一個(gè)簡(jiǎn)單工廠模式實(shí)例
定義產(chǎn)品接口
實(shí)現(xiàn)2個(gè)產(chǎn)品類(lèi)
定義工廠接口
實(shí)現(xiàn)工廠類(lèi)
業(yè)務(wù)場(chǎng)景
運(yùn)行結(jié)果
至此,一個(gè)簡(jiǎn)單工廠就完成了。
延遲加載的工廠模式:
同樣的先定義共有的man接口
定義兩個(gè)實(shí)現(xiàn)類(lèi)
定義抽象工廠接口
抽象工程實(shí)現(xiàn)類(lèi)
業(yè)務(wù)場(chǎng)景類(lèi)
結(jié)果
通過(guò)斷點(diǎn)調(diào)試為,我們可以看到,第一詞調(diào)用createMan方法的時(shí)候,是通過(guò)
( Man ) Class.forName( T.getName( ) ).newInstance( );獲取實(shí)例的,但是第二次調(diào)用的時(shí)候,使用了緩存HashMap里面的值。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71783.html
摘要:在設(shè)計(jì)模式中,所有的設(shè)計(jì)模式都遵循這一原則。其實(shí)就是說(shuō)在應(yīng)用程序中,所有的類(lèi)如果使用或依賴于其他的類(lèi),則應(yīng)該依賴這些其他類(lèi)的抽象類(lèi),而不是這些其他類(lèi)的具體類(lèi)。使用設(shè)計(jì)模式是為了可重用代碼讓代碼更容易被他人理解保證代碼可靠性。 這是劉意老師的JAVA基礎(chǔ)教程的筆記講的賊好,附上傳送門(mén) 傳智風(fēng)清揚(yáng)-超全面的Java基礎(chǔ) 一、面向?qū)ο笏枷朐O(shè)計(jì)原則 1.單一職責(zé)原則 其實(shí)就是開(kāi)發(fā)人員經(jīng)常說(shuō)的高...
摘要:工廠模式,又稱為工廠方法模式。工廠模式,也就是工廠方法模式是解決了簡(jiǎn)單工廠要修改代碼的問(wèn)題,他把對(duì)象的創(chuàng)建操作延遲到子類(lèi)工廠中,這樣新增產(chǎn)品就不需要修改代碼。 簡(jiǎn)單工廠其實(shí)并不是設(shè)計(jì)模式,只是一種編程習(xí)慣。 首先我們創(chuàng)建父類(lèi)Cup,所有杯子類(lèi)的父類(lèi)。再創(chuàng)建它的子類(lèi)BigCup和SmallCup類(lèi)。 public abstract class Cup { public abst...
摘要:工廠模式的分類(lèi)簡(jiǎn)單工廠模式,又稱靜態(tài)工廠方法模式。工廠方法模式,又稱多態(tài)性工廠模式或虛擬構(gòu)造子模式抽象工廠模式,又稱工具箱或模式。具體產(chǎn)品角色抽象工廠模式所創(chuàng)建的任何產(chǎn)品對(duì)象都是某一個(gè)具體產(chǎn)品類(lèi)的實(shí)例。 Java面試通關(guān)手冊(cè)(Java學(xué)習(xí)指南,歡迎Star,會(huì)一直完善下去,歡迎建議和指導(dǎo)):https://github.com/Snailclimb/Java_Guide 歷史回顧: 深...
摘要:提供靜態(tài)工廠方法而不是公共構(gòu)造函數(shù)既有優(yōu)點(diǎn)也有缺點(diǎn)。它們不像構(gòu)造函數(shù)那樣在文檔中脫穎而出,因此很難弄清楚如何實(shí)例化提供靜態(tài)工廠方法而不是構(gòu)造函數(shù)的類(lèi)。 ??類(lèi)允許客戶端獲取實(shí)例的傳統(tǒng)方法是提供公共構(gòu)造器。還有一種技術(shù)應(yīng)該是每個(gè)程序員的工具箱的一部分。一個(gè)類(lèi)可以提供一個(gè)公共靜態(tài)工廠方法,它僅僅是一個(gè)返回類(lèi)實(shí)例的靜態(tài)方法。下面是布爾(布爾型的盒裝原語(yǔ)類(lèi))的一個(gè)簡(jiǎn)單示例。這個(gè)方法將一個(gè)布爾原...
摘要:從設(shè)計(jì)模式的分類(lèi)來(lái)看簡(jiǎn)單工廠模式是創(chuàng)建型模式。使用簡(jiǎn)單工廠模式將會(huì)增加系統(tǒng)中類(lèi)的個(gè)數(shù),在一定程序上增加了系統(tǒng)的復(fù)雜度和理解難度。簡(jiǎn)單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無(wú)法形成基于繼承的等級(jí)結(jié)構(gòu)。 簡(jiǎn)單工廠模式提供了一個(gè)接口可以根據(jù)傳遞的參數(shù)的不同創(chuàng)建不同的對(duì)象,從而將對(duì)象自身的邏輯與對(duì)象的創(chuàng)建分離開(kāi)。 從設(shè)計(jì)模式的分類(lèi)來(lái)看簡(jiǎn)單工廠模式是創(chuàng)建型模式。事實(shí)上與簡(jiǎn)單工廠模式類(lèi)似的還...
閱讀 1839·2021-11-11 16:55
閱讀 761·2019-08-30 15:53
閱讀 3600·2019-08-30 15:45
閱讀 748·2019-08-30 14:10
閱讀 3277·2019-08-30 12:46
閱讀 2134·2019-08-29 13:15
閱讀 2035·2019-08-26 13:48
閱讀 943·2019-08-26 12:23