




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、九種設(shè)計(jì)模式的理解這都是我個(gè)人的愚見,請(qǐng)不要當(dāng)做參考文獻(xiàn)傳閱!只是為了加深這九種模式的理解1)單例模式(Singleton)該類只生成唯一的一個(gè)對(duì)象!也就是說不管調(diào)用這個(gè)類的任一對(duì)象都是同一個(gè)對(duì)象。Singleton-singleton:Singleton-SingletDnO4-getinstBncEO;Singleinn2)策越模式(Strategy)抽象策越角色(Strategy):般是個(gè)接口具體策越角色(ConcreteStrategy):實(shí)現(xiàn)接口的類,并且實(shí)現(xiàn)接口中特定的方法,完成某一特定功能。環(huán)境角色(Context):含有一個(gè)抽象策越角色的引用作為成員變量通過定義不同的具體策越角
2、色類,并且實(shí)現(xiàn)接口中的方法,使他們的上轉(zhuǎn)型對(duì)象都是接口類型,但他們實(shí)現(xiàn)接口的方法的策越都是不相同的。因此在環(huán)境角色中,不同的具體策越角色類的對(duì)象,會(huì)擁有不同的策越。(實(shí)際上就是一個(gè)上轉(zhuǎn)型的多態(tài))3)代理模式(StaticProxy,DynamicProxy)抽象角色(Subject):個(gè)公共接口代理角色(Proxy):實(shí)現(xiàn)了接口,并且還有一個(gè)抽象角色的引用作為成員變量。這個(gè)成員變量就是用來接收真實(shí)角色的對(duì)象的。通過實(shí)現(xiàn)接口的方法當(dāng)中訪問真實(shí)角色的方法。3真實(shí)角色(RealSubject):實(shí)現(xiàn)了接口,并且實(shí)現(xiàn)了接口中的特定方法,完成某一特定功能。因?yàn)榇斫巧驼鎸?shí)角色實(shí)現(xiàn)了相同的接口,所以他們
3、要實(shí)現(xiàn)相同的方法,但是代理角色實(shí)現(xiàn)的這個(gè)方法是直接調(diào)用了真實(shí)角色的同名方法,而且還為自身新增了功能。而真實(shí)角色的這個(gè)方法才是真正完成某一事情的實(shí)現(xiàn)??此拼斫巧耆砹苏鎸?shí)角色。(三個(gè)角色與組合模式有點(diǎn)類似,但是側(cè)重點(diǎn)完全不同)4)觀察者模式(Observer)抽象主題角色(Subject):定義一個(gè)接口,聲明作為主題角色應(yīng)該具備的方法(對(duì)觀察者對(duì)象的增刪改之類的方法聲明)。主題角色(ConcreteSubject):實(shí)現(xiàn)了抽象主題角色,實(shí)現(xiàn)了它的所有方法,并且含有一個(gè)抽象觀察者角色的集合引用作為成員變量,也就是說一個(gè)主題角色可以擁有多個(gè)觀察者。抽象觀察者角色(Observer):定義了一個(gè)
4、接口,聲明最為觀察者角色應(yīng)該具備的方法(這個(gè)方法是當(dāng)觀察者收到通知后做出的反應(yīng),一般就是update)。具體觀察者角色(ConcreteObserver):實(shí)現(xiàn)抽象觀察者角色,主要是實(shí)現(xiàn)接口中的update方法。觀察者模式就是被觀察者(具體主題角色)發(fā)生變化時(shí),他就會(huì)通知其存放的那些觀察者們,使觀察者調(diào)用它們的update方法,做出相應(yīng)的回應(yīng)。如果只有一個(gè)觀察者,那么整個(gè)觀察者模式就會(huì)退化成簡(jiǎn)單的策越模式。如果有多個(gè)觀察者,那么就與策越模式完全不同,因?yàn)椴咴侥J絺?cè)重的是:不同的具體策越角色對(duì)象會(huì)擁有不同的策越!而觀察者模式側(cè)重的是:使所有的觀察者都作出相應(yīng)的回應(yīng)。一個(gè)側(cè)重單個(gè)的變化,一個(gè)側(cè)重整
5、體的回應(yīng)。5)裝飾模式(Decorator)抽象構(gòu)件角色(Component):定義一個(gè)接口,聲明能夠被裝飾的目標(biāo)方法具體構(gòu)件角色(ConcreteComponent):實(shí)現(xiàn)抽象構(gòu)件角色接口,實(shí)現(xiàn)接口中聲明的方法,而這些方法的實(shí)現(xiàn)就是真正被包裝后新增的功能。也就是說不同的具體構(gòu)件角色會(huì)對(duì)這些方法實(shí)現(xiàn)不同的功能,而這些具體構(gòu)件角色就是第一層被包裝的類抽象裝飾角色(Decorator):繼承了抽象構(gòu)件角色接口的接口具體裝飾角色(ConcreteDecorator):實(shí)現(xiàn)了抽象裝飾角色接口,實(shí)現(xiàn)了從抽象構(gòu)件角色繼承過來的方法,這些方法的實(shí)現(xiàn)是有規(guī)律的。并且含有一個(gè)抽象構(gòu)件角色的引用作為成員變量。那么
6、具體裝飾角色實(shí)現(xiàn)接口的方法是簡(jiǎn)單的調(diào)用他那個(gè)抽象構(gòu)件角色成員變量的同名方法,這樣,如果具體裝飾角色接收了一個(gè)具體構(gòu)件角色對(duì)象,那么具體構(gòu)件角色就被包裝了,具體構(gòu)件角色所實(shí)現(xiàn)的方法就是包裝新增的功能。當(dāng)然,由于具體裝飾角色也實(shí)現(xiàn)了抽象構(gòu)件角色接口,那么它也能夠自己裝飾具體裝飾角色,但是真正新增的功能永遠(yuǎn)是具體構(gòu)件角色那里實(shí)現(xiàn)的(如果是在裝飾角色的方法里實(shí)現(xiàn),具體構(gòu)件角色就顯得毫無意義了)。因此,裝飾與被裝飾是相對(duì)的。另外,裝飾的目的就是新增具體構(gòu)件角色方法的功能。6)模板方法模式(Template)父類角色:定義一個(gè)抽象類,首先聲明完成某一特定任務(wù)的一些方法名稱(其具體實(shí)現(xiàn)交給子類去完成),這些
7、方法稱為步驟。并且定義一個(gè)方法,這個(gè)方法的實(shí)現(xiàn)就是調(diào)用前面的那些聲明過的方法,關(guān)鍵在于這些方法的順序就已經(jīng)在這里得到確定(子類不能更改),稱之為模板方法。子類角色:實(shí)現(xiàn)了父類角色那些抽象方法(步驟),并且繼承它的模板方法。因此無論如何實(shí)現(xiàn)步驟,它的模板是不會(huì)更改的。模板方法實(shí)際上就是有步驟的完成某一件事情,而這些具體步驟則交給子類去實(shí)現(xiàn)。步驟的順序即模板則不會(huì)變化。像這種機(jī)制往往采用反射來完成。7)適配器模式(Adapter)1.目標(biāo)抽象角色(Target):定義客戶要用特定領(lǐng)域的接口2適配源(Adaptee):也稱之為被適配者。它是最終的目標(biāo),換句話說,客戶想到用適配源的方法。適配器(Ada
8、pter):也稱之為轉(zhuǎn)換器??蛻粝胍ㄟ^目標(biāo)抽象角色這個(gè)接口對(duì)象來調(diào)用適配源的方法,因?yàn)檫m配源和目標(biāo)抽象角色根本就不存在關(guān)系,所以要用適配器進(jìn)行轉(zhuǎn)換,但不向客戶公布。那么適配器有兩種選擇,其一是他可以實(shí)現(xiàn)目標(biāo)抽象角色并且繼承適配源,在實(shí)現(xiàn)接口中的方法的時(shí)候直接調(diào)用他繼承適配源的方法就可以到達(dá)目的。其二是他可以實(shí)現(xiàn)目標(biāo)抽象角色,并且含有適配源對(duì)象的引用,那么在實(shí)現(xiàn)接口的方法的時(shí)候直接通過適配源對(duì)象調(diào)用他的方法就可以到達(dá)目的??蛻簦–lient):通過運(yùn)用適配器對(duì)象完成他想要完成的目的以上也僅僅是兩種適配器方式,還有第三種,就是缺省的適配器模式,這個(gè)模式在AWT或者是SWING中用到。8)命令模式
9、(Command)接收者角色(Receiver):負(fù)責(zé)調(diào)用具體命令角色,執(zhí)行命令命令角色(Command):定義一個(gè)抽象接口,聲明所有的命令方法具體命令角色(ConcreteCommand):實(shí)現(xiàn)命令角色接口,實(shí)現(xiàn)接口中的所有方法,這方法的實(shí)現(xiàn)就是命令所要求完成的功能。請(qǐng)求者角色(Invoker):負(fù)責(zé)與客戶角色聯(lián)系,并且把命令發(fā)送給接收者角色客戶角色(Client):直接與接請(qǐng)求者角色聯(lián)系,并且發(fā)出命令(所謂發(fā)出命令,實(shí)質(zhì)就是定義一些具體命令角色的對(duì)象)。命令模式實(shí)際上是這樣的,客戶角色想要執(zhí)行某條命令,那么他首先要生成對(duì)應(yīng)的具體命令角色對(duì)象,然后通知給請(qǐng)求者角色(生成一個(gè)請(qǐng)求者角色對(duì)象)。
10、那么接下來就是請(qǐng)求者完成的事情了,請(qǐng)求者首先通知接收者角色(因?yàn)樗薪邮照呓巧珜?duì)象的引用),然后由接收者角色去完成事情,接收者會(huì)接收客戶發(fā)送的那條命令(也就是說接收者角色含有具體命令角色對(duì)象的引用),然后執(zhí)行這條命令。那么客戶的命令就得到執(zhí)行。因此,真正執(zhí)行命令的是接收者角色,而真正命令的實(shí)現(xiàn)則是具體命令角色。9)組合模式(Composite)抽象構(gòu)件接口(Component):定義一個(gè)接口,聲明原子項(xiàng)所要實(shí)現(xiàn)的方法,同時(shí),也是聲明組合項(xiàng)中的方法,使二者形成默認(rèn)的行為葉部件(Leaf):實(shí)現(xiàn)抽象構(gòu)件接口,并且實(shí)現(xiàn)葉節(jié)點(diǎn)每一個(gè)方法的詳細(xì)操作,此為原子項(xiàng)組合類(Composite):實(shí)現(xiàn)抽象構(gòu)件接口,并且把Leaf對(duì)象的集合引用作為自己的成員變量,還定義了一些管理這些Leaf對(duì)象的方法(比如add,remove等)。實(shí)現(xiàn)接口中的方法,這些方法的實(shí)現(xiàn)是有規(guī)律的,也就是遍歷Leaf集合,然后由每一個(gè)Leaf對(duì)象去執(zhí)行接口中的方法客戶角色(Client):控制Composi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 32122:2025 EN Transaction assurance in E-commerce - Guidance for offering online dispute resolution services
- 【正版授權(quán)】 ISO 10924-1:2025 EN Road vehicles - Circuit breakers - Part 1: Definitions and general test requirements
- 【正版授權(quán)】 IEC 62037-3:2025 EN-FR Passive RF and microwave devices,intermodulation level measurement - Part 3: Measurement of passive intermodulation in coaxial connectors
- 【正版授權(quán)】 IEC 60335-2-81:2024 EXV EN Household and similar electrical appliances - Safety - Part 2-81: Particular requirements for foot warmers and heating mats
- 建筑行業(yè)節(jié)能減排
- 海外護(hù)理職業(yè)規(guī)劃
- 2025年學(xué)科工作方案
- 2025年幼兒中班教學(xué)工作方案
- 出鏡記者與主持人實(shí)務(wù) 課件 第三章 電視新聞故事化
- 大班班本課程《管你好玩》
- 征地拆遷培訓(xùn)班課件
- 2024年江蘇城鄉(xiāng)建設(shè)職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 寄生蟲科普講座課件
- 四新技術(shù)培訓(xùn)課件
- 游泳對(duì)提高免疫力的方法
- 《社會(huì)保險(xiǎn)法解讀》課件
- 汞中毒學(xué)習(xí)課件
- 浙江嘉華晶體纖維有限公司年產(chǎn)300噸超高溫陶瓷纖維棉及600噸高溫陶瓷纖維棉制品環(huán)境影響報(bào)告表
- 國際商事調(diào)解的流程和程序
- 滲碳滲氮的作用及氮碳共滲和碳氮共滲的區(qū)別
- 中國高鐵發(fā)展史
評(píng)論
0/150
提交評(píng)論