java程序設(shè)計(jì)模式程序設(shè)計(jì)

java程序設(shè)計(jì)模式程序設(shè)計(jì)

ID:13879664

大?。?28.50 KB

頁數(shù):67頁

時(shí)間:2018-07-24

java程序設(shè)計(jì)模式程序設(shè)計(jì)_第1頁
java程序設(shè)計(jì)模式程序設(shè)計(jì)_第2頁
java程序設(shè)計(jì)模式程序設(shè)計(jì)_第3頁
java程序設(shè)計(jì)模式程序設(shè)計(jì)_第4頁
java程序設(shè)計(jì)模式程序設(shè)計(jì)_第5頁
資源描述:

《java程序設(shè)計(jì)模式程序設(shè)計(jì)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Java設(shè)計(jì)模式1.1創(chuàng)建型模式AbstractFactory(抽象工廠)FactoryMethod(工廠方法)Singleton(單態(tài)模式)Builder(建造者模式)Prototype(原型模式)1.2結(jié)構(gòu)型模式Adapter(適配器模式)Bridge(橋接模式)Composite(組合模式)Decorator(裝配模式)Facade(外觀模式)Flyweight(享元模式)Proxy(代理模式)1.3行為型模式ChainofResponsibility(責(zé)任鏈模式)Command(命令模式)Interpreter

2、(解釋器模式)Iterator(迭代器模式)Mediator(中介者模式)Memento(備忘錄模式)Observer(觀察者模式)State(狀態(tài)模式)Strategy(策略模式)TemplateMethod(模板方法)Visitor(訪問者模式)ToneyChen的總結(jié)Singleton設(shè)計(jì)模式Singleton單類模式是最簡單的設(shè)計(jì)模式,它的主要作用是保證在程序運(yùn)行生命周期中,使用了單類模式的類只能有一個(gè)實(shí)例對象存在。單類模式實(shí)現(xiàn)了類似C語言中全局變量的功能,單類模式常用于注冊/查找的服務(wù)。單類模式有兩種實(shí)現(xiàn)方式

3、:飽漢模式和餓漢模式,如下:飽漢單類模式例子代碼:[java]viewplaincopy1.public?class?Singleton1{??2.????????//飽漢模式,聲明時(shí)就創(chuàng)建實(shí)例對象??3.????public?static?final?Singleton1?instance?=?new?Singleton1();??4.????//單類模式的構(gòu)造方法必須為private,以避免通過構(gòu)造方法創(chuàng)建對象實(shí)例,??5.????????//并且必須顯示聲明構(gòu)造方法,以防止使用默認(rèn)構(gòu)造方法??6.????priv

4、ate?Singleton1(){}??7.????????//單類模式必須對外提供獲取實(shí)例對象的方法??8.????????public?static?Singleton1?geInstance(){??9.???????????return?instance;??10.????????}??11.}??餓漢單類模式即延遲初始化單類方式,例子代碼:[java]viewplaincopy1.public?class?Singleton2{??2.????????//餓漢模式,聲明時(shí)不創(chuàng)建實(shí)例對象??3.????publ

5、ic?static?Singleton2?instance;??4.????//單類模式的構(gòu)造方法必須為private,以避免通過構(gòu)造方法創(chuàng)建對象實(shí)例,??5.????????//并且必須顯示聲明構(gòu)造方法,以防止使用默認(rèn)構(gòu)造方法??6.????private?Singleton2(){}??7.????????//單類模式必須對外提供獲取實(shí)例對象的方法,延遲初始化的單類模式必須使用synchronized同步關(guān)鍵字,否則多線程情況下很容易產(chǎn)生多個(gè)實(shí)例對象??8.????????public?static?synchro

6、nized?Singleton2?geInstance(){??9.???????????//延遲初始化,只有當(dāng)?shù)谝淮问褂脮r(shí)才創(chuàng)建對象實(shí)例??10.???????????if(instance?==?null){??11.???????????????return?new?Singleton2();??12.????????????????}??1.???????????????return?instance;??2.????????}??3.}??一般認(rèn)為飽漢模式要比餓漢模式更加安全。上面兩種Singleton單類設(shè)

7、計(jì)模式的實(shí)現(xiàn)方式都隱藏有如下的問題:(1).雖然構(gòu)造方式的訪問修飾符為private,即除了自身以外其他任何類都無法調(diào)用,但是通過反射機(jī)制的setAccessiable(true)方法可以訪問私有方法和屬性。因此Singleton單類模式必須考慮這種例外情況。(2).對象序列化之后再反序列化時(shí)會生成新的對象,因此當(dāng)Singleton單類模式類實(shí)現(xiàn)序列化接口時(shí),必須顯式聲明所有的字段為tranisent。在JDK1.5之后引入了Enum枚舉,因此在JDK1.5之后Singleton單類模式又有了第三種實(shí)現(xiàn)方式,也是最好的

8、實(shí)現(xiàn)方式,例子如下:[java]viewplaincopy1.public?enum?Singleton3{??2.????INSTANCE{??3.????????public?void?doSomething(){??4.????????????……??5.????????}??6.????};??7.????public?S

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。