亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式

系統(tǒng) 1838 0

2. ? Fa?ade 外觀模式

為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,此模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。

看圖說話:

?
設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式

?

?

??? 此模式的具體體在: MVC service 層中某個(gè) service 對(duì) dao 層的封裝, JDBC 對(duì)各個(gè)數(shù)據(jù)庫的封裝。

3. ? Proxy 代理模式

為其他對(duì)象提供一種代理,以控制對(duì)這個(gè)對(duì)象的訪問。

看圖說話:

?

?
設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式

??? 代理對(duì)象中保存被代理對(duì)象的引用,在調(diào)用被代理對(duì)象過程中可以附加操作。

??? 使用場(chǎng)合:遠(yuǎn)程代理;虛擬代理 ( 異步調(diào)用被代理對(duì)象的方法 ) ;安全代理;只能指引。不管什么場(chǎng)合都要是要在被代理對(duì)象上附加操作。

4. ? Adapter 適配器模式

將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。 Adaper 模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

看圖說話:


設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式

?

????? ?? 適配器通過繼承目標(biāo)對(duì)象并隱含被適配者的真正實(shí)現(xiàn)來達(dá)到目標(biāo)操作與被適配者

的兼容合作。

5. ? Composite 組合模式

??? ???? 將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分—整體”的層次結(jié)構(gòu)。組合模式使得用戶對(duì)單

個(gè)對(duì)象和組合對(duì)象的使用具有一致性。

??? 看圖說話:

?
??????????? 設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式
?

實(shí)例應(yīng)用: JUnit Test 接口中及 TestCase TestSuite 子類的結(jié)構(gòu)即為組合模式。

適用于樹形結(jié)構(gòu),集合結(jié)構(gòu)。

實(shí)現(xiàn)方式有兩種:透明方式與安全方式

透明方式:上圖的結(jié)構(gòu)為透明方式,即在 Component 中管理子類對(duì)象的增減,問題是 Leaf 不應(yīng)具有增減子類對(duì)象的功能。

安全方式:將增減子類的功能放在 Composite 中實(shí)現(xiàn)。解決了葉子節(jié)點(diǎn)的問題,但客戶端就要做出相應(yīng)的判斷。

JUnit3.8 使用的是安全方式。

6. ? Decorator 裝飾模式(油漆工模式)

動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé),就增加功能來說,裝飾模式比生成子類更為靈活。

看圖說話:

?
?????? 設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式

?

裝飾者可以有自己的狀態(tài)和新的行為,只關(guān)心自己的變化,封裝了具體被裝飾的對(duì)象的行為。注意 decorate 方法的使用。

Proxy 對(duì)比,

A .一般代理模式中被代理對(duì)象是不被客戶端知道的,在代理對(duì)象初始化時(shí)或之前就已初始化好了的。而裝飾模式要知道具體的被裝飾對(duì)象及裝飾流程,被裝飾對(duì)象是通過 decorate 方法傳遞給裝飾者的。

B .代理對(duì)象一般不多,而裝飾者一般較多。

7 Bridge 橋接模式

????? 將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。

?????? ? 看圖說話:

?????????
????????? 設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式
?

????? A .什么樣的事物適合它的抽象與實(shí)現(xiàn)相分離?

????? 注解:

復(fù)雜事物。

那有多復(fù)雜?這里涉及到個(gè)數(shù)學(xué)問題

我們假設(shè)看上面的每個(gè)抽象與它的實(shí)現(xiàn)都有一種組合關(guān)系,且有兩個(gè)具體的抽

象,兩個(gè)具體的實(shí)現(xiàn)。

如果使用 Bridge 模式,那么需要四個(gè)類來完成 2+2=4

如果使用繼承的方式實(shí)現(xiàn)也需要四個(gè)類來完成 2 × 2=4

所以可以知道,當(dāng)具體的抽象和具體的實(shí)現(xiàn)組合數(shù)大于 4 時(shí),使用橋接模式是

多么節(jié)省資源。

B .抽象與實(shí)現(xiàn)分離有什么好處?

注解:

???? 各自任意變化,且可以任意的組合。就像電腦的硬件可以是任意廠商的,軟件

可以是任意人開發(fā)的,但都可以相互組合一樣。

C .具體應(yīng)用的體現(xiàn)。

MVC Service 層和 Dao 層之間可以看作橋接模式的體現(xiàn),之前說過 Service

的某個(gè) Service 對(duì) Dao 的封裝可以視為 Fa?ade 模式,那么此時(shí)橋接模式就可以看作是

多個(gè) Fa?ade 的集合。

8. ? Flyweight 亨元模式

運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象,避免大量擁有相同內(nèi)容的小類的開銷,使大家共享一個(gè)元類。

看圖說話:

??????
? 設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式
?

?

? A .當(dāng)有當(dāng)量的相似對(duì)象存在時(shí),要抽象出相似的部分作為“元類”共享,讓差異

部分可以通過傳參的形式傳入到共享對(duì)象的方法中來達(dá)到差異操作。

? ?? B .注意關(guān)鍵點(diǎn)是 FlyweightFacory 的實(shí)現(xiàn),通過它來達(dá)到共享的目的。

??? C .優(yōu)缺點(diǎn) :

?????? ???? 優(yōu)點(diǎn): Flyweight 模式是一個(gè)提高程序效率和性能的模式 , 會(huì)大大加快程

序的運(yùn)行速度 . 應(yīng)用場(chǎng)合很多

設(shè)計(jì)模式—詳解篇—結(jié)構(gòu)型模式


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 青青国产成人久久激情911 | 成人一级免费视频 | 色视频一区二区三区 | 国产精品一区二区手机看片 | 国产人成精品综合欧美成人 | 老头老太做爰xxxx视频 | 亚洲成人在线视频 | 国产精品_国产精品_国产精品 | 深夜在线观看网站 | 欧美一级h | 亚洲精品在线观看视频 | 日本亚洲精品成人 | 手机看片国产永久1204 | 国产高清天干天天视频 | 欧美日韩国产综合一区二区三区 | 最新国产麻豆精品 | 亚洲国产欧美91 | 久草视频观看 | 久草精品视频 | 久久久精品一区二区三区 | 欧美综合色 | 久久精品国产6699国产精 | 亚洲视频在线观看不卡 | 国产国产精品人在线视 | 久久精品亚洲乱码伦伦中文 | 欧美做爱毛片 | 国产网友自拍 | 日本一区二区三区欧美在线观看 | 欧美香蕉爽爽人人爽观看猫咪 | 91中文在线| 久草小区二区三区四区网页 | 免费激情小视频 | 9191精品国产免费不久久 | 99久久精品国产片 | 无夜精品久久久久久 | 欧美久久久久久久一区二区三区 | 色一情一欲一爱一乱 | 中文字幕欧美日韩久久 | 国产精品亚洲欧美日韩一区在线 | 天天射日日操 | 不卡无毒免费毛片视频观看 |