程序設(shè)計模式程序設(shè)計

程序設(shè)計模式程序設(shè)計

ID:19491071

大?。?.02 MB

頁數(shù):67頁

時間:2018-09-27

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

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

1、Java設(shè)計模式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(解釋器模式)Iterator(迭代器模式)Mediator(

2、中介者模式)Memento(備忘錄模式)Observer(觀察者模式)State(狀態(tài)模式)Strategy(策略模式)TemplateMethod(模板方法)Visitor(訪問者模式)ToneyChen的總結(jié)Singleton設(shè)計模式Singleton單類模式是最簡單的設(shè)計模式,它的主要作用是保證在程序運行生命周期中,使用了單類模式的類只能有一個實例對象存在。單類模式實現(xiàn)了類似C語言中全局變量的功能,單類模式常用于注冊/查找的服務(wù)。單類模式有兩種實現(xiàn)方式:飽漢模式和餓漢模式,如下:飽漢單類模式例子代碼:[java]viewplaincopy1.public?class?Sin

3、gleton1{??2.????????//飽漢模式,聲明時就創(chuàng)建實例對象??3.????public?static?final?Singleton1?instance?=?new?Singleton1();??4.????//單類模式的構(gòu)造方法必須為private,以避免通過構(gòu)造方法創(chuàng)建對象實例,??5.????????//并且必須顯示聲明構(gòu)造方法,以防止使用默認(rèn)構(gòu)造方法??6.????private?Singleton1(){}??7.????????//單類模式必須對外提供獲取實例對象的方法??8.????????public?static?Singleton1?geIns

4、tance(){??9.???????????return?instance;??10.????????}??11.}??餓漢單類模式即延遲初始化單類方式,例子代碼:[java]viewplaincopy1.public?class?Singleton2{??2.????????//餓漢模式,聲明時不創(chuàng)建實例對象??3.????public?static?Singleton2?instance;??4.????//單類模式的構(gòu)造方法必須為private,以避免通過構(gòu)造方法創(chuàng)建對象實例,??5.????????//并且必須顯示聲明構(gòu)造方法,以防止使用默認(rèn)構(gòu)造方法??6.????pr

5、ivate?Singleton2(){}??7.????????//單類模式必須對外提供獲取實例對象的方法,延遲初始化的單類模式必須使用synchronized同步關(guān)鍵字,否則多線程情況下很容易產(chǎn)生多個實例對象??8.????????public?static?synchronized?Singleton2?geInstance(){??9.???????????//延遲初始化,只有當(dāng)?shù)谝淮问褂脮r才創(chuàng)建對象實例??10.???????????if(instance?==?null){??11.???????????????return?new?Singleton2();??12.

6、????????????????}??1.???????????????return?instance;??2.????????}??3.}??一般認(rèn)為飽漢模式要比餓漢模式更加安全。上面兩種Singleton單類設(shè)計模式的實現(xiàn)方式都隱藏有如下的問題:(1).雖然構(gòu)造方式的訪問修飾符為private,即除了自身以外其他任何類都無法調(diào)用,但是通過反射機制的setAccessiable(true)方法可以訪問私有方法和屬性。因此Singleton單類模式必須考慮這種例外情況。(2).對象序列化之后再反序列化時會生成新的對象,因此當(dāng)Singleton單類模式類實現(xiàn)序列化接口時,必須顯式聲

7、明所有的字段為tranisent。在JDK1.5之后引入了Enum枚舉,因此在JDK1.5之后Singleton單類模式又有了第三種實現(xiàn)方式,也是最好的實現(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ù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。