av无码国产在线看岛国_日韩精品无码专区国产av影院_在线主播精品国产99热_国模无码一区二区久久_97影院九七理论片男女高清_中文字幕一级毛片_亚洲国产av无码专区亚洲av_成人黄色小说在线观看_H动漫无遮挡在线看中文_国产午夜精品理论片免费视频播放

您好,歡迎訪問(wèn)上?,F(xiàn)易電子元器件有限公司網(wǎng)站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁(yè) ->  新聞資訊 -> 電源

?適配器模式和裝飾模式的區(qū)別

文章出處:電源 責(zé)任編輯:上?,F(xiàn)易電子元器件有限公司 發(fā)表時(shí)間:2018-01-15

裝飾模式指的是在不必改變?cè)愇募褪褂美^承的情況下,動(dòng)態(tài)地?cái)U(kuò)展一個(gè)對(duì)象的功能。它是通過(guò)創(chuàng)建一個(gè)包裝對(duì)象,也就是裝飾來(lái)包裹真實(shí)的對(duì)象。


23種設(shè)計(jì)模式之一,英文叫Decorator Pattern,又叫裝飾者模式。裝飾模式是在不必改變?cè)愇募褪褂美^承的情況下,動(dòng)態(tài)地?cái)U(kuò)展一個(gè)對(duì)象的功能。它是通過(guò)創(chuàng)建一個(gè)包裝對(duì)象,也就是裝飾來(lái)包裹真實(shí)的對(duì)象。


裝飾模式的特點(diǎn)


1) 裝飾對(duì)象和真實(shí)對(duì)象有相同的接口。這樣客戶端對(duì)象就能以和真實(shí)對(duì)象相同的方式和裝飾對(duì)象交互。


2) 裝飾對(duì)象包含一個(gè)真實(shí)對(duì)象的引用(reference)


3) 裝飾對(duì)象接受所有來(lái)自客戶端的請(qǐng)求。它把這些請(qǐng)求轉(zhuǎn)發(fā)給真實(shí)的對(duì)象。


4) 裝飾對(duì)象可以在轉(zhuǎn)發(fā)這些請(qǐng)求以前或以后增加一些附加功能。這樣就確保了在運(yùn)行時(shí),不用修改給定對(duì)象的結(jié)構(gòu)就可以在外部增加附加的功能。在面向?qū)ο蟮脑O(shè)計(jì)中,通常是通過(guò)繼承來(lái)實(shí)現(xiàn)對(duì)給定類的功能擴(kuò)展。

適配器模式


在計(jì)算機(jī)編程中,適配器模式(有時(shí)候也稱包裝樣式或者包裝)將一個(gè)類的接口適配成用戶所期待的。一個(gè)適配允許通常因?yàn)榻涌诓患嫒荻荒茉谝黄鸸ぷ鞯念惞ぷ髟谝黄?,做法是將類自己的接口包裹在一個(gè)已存在的類中。


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


基本概念


客戶:需要調(diào)用我們的代碼的對(duì)象。


Adapter模式的宗旨:保留現(xiàn)有類所提供的服務(wù),向客戶提供接口,以滿足客戶的期望。


主要內(nèi)容


(1)類適配器:


當(dāng)客戶在接口中定義了他期望的行為時(shí),我們就可以應(yīng)用適配器模式,提供一個(gè)實(shí)現(xiàn)該接口的類,并且擴(kuò)展已有的類,通過(guò)創(chuàng)建子類來(lái)實(shí)現(xiàn)適配。


下面是類適配器的UML圖:


(2)對(duì)象適配器:對(duì)象適配器”通過(guò)組合除了滿足“用戶期待接口”還降低了代碼間的不良耦合。在工作中推薦使用“對(duì)象適配”。下面是對(duì)象適配器的UML圖:(3) 缺省適配器模式:缺省適配器模式是一種特殊的適配器模式,但這個(gè)適配器是由一個(gè)抽象類實(shí)現(xiàn)的,并且在抽象類中要實(shí)現(xiàn)目標(biāo)接口中所規(guī)定的所有方法,但很多方法的實(shí)現(xiàn)都是“平庸”的實(shí)現(xiàn),也就是說(shuō),這些方法都是空方法。而具體的子類都要繼承此抽象類。


裝飾模式與適配器模式的的區(qū)別


裝飾模式和適配器模式都有一個(gè)別名叫包裝模式,但包裝的形式是不一樣的。


定義上:


裝飾模式:對(duì)客戶端透明的方式擴(kuò)展對(duì)象的功能,是繼承關(guān)系的一個(gè)替代方案,提供比繼承更多的靈活性。使用原來(lái)被裝飾的類的一個(gè)子類的實(shí)例,把客戶端的調(diào)用委派到被裝飾類。


適配器模式:把一個(gè)類的接口變換成客戶端所期待的另一種接口,從而使原本因接口原因不匹配而無(wú)法一起工作的兩個(gè)類能夠一起工作。適配類可以根據(jù)參數(shù)返還一個(gè)合適的實(shí)例給客戶端。


從定義上看裝飾模式是對(duì)核心對(duì)象或者功能的擴(kuò)展,適配器模式是把對(duì)象或者功能放到一個(gè)新對(duì)象中引用。舉個(gè)例子,現(xiàn)在書城賣道德經(jīng)的書,有線裝版,有精裝版,有日文版,有英文版,其中線裝版和精裝版就是裝飾模式,日文版和英文版就是適配器模式,各種版本都是為迎合不同消費(fèi)者的不同需求。為什么呢?因?yàn)榫€裝版和精裝版的道德經(jīng)雖然包裝不同,但內(nèi)容相同,日文版和英文版就不同,這兩個(gè)版本的內(nèi)容就可能和原版的不同,文化差異嘛,翻譯的內(nèi)容雖來(lái)自道德經(jīng),但根據(jù)不同國(guó)家的文化,思維邏輯什么的就可能改變一些想法。


使用條件:


裝飾模式一般在下列情況使用:需要擴(kuò)展一個(gè)類的功能或者給你個(gè)類增加附加責(zé)任;需要?jiǎng)討B(tài)的給一個(gè)對(duì)象增加功能,這些功能可以再動(dòng)態(tài)的撤銷;需要增加有一些基本功能的排列組合而產(chǎn)生非常大量的功能,從而使得繼承關(guān)系變得不現(xiàn)實(shí)。


適配器模式一般使用的情況包括:系統(tǒng)需要使用現(xiàn)有的類,但此類已經(jīng)不符合系統(tǒng)的需要;


想要建立一個(gè)可以重復(fù)使用的類,用于與一些彼此之間沒(méi)有太大關(guān)聯(lián)的一些類,包括一些可能在將來(lái)引進(jìn)的的類一起工作。適配器模式在系統(tǒng)升級(jí)的時(shí)候使用的頻率很高,對(duì)舊系統(tǒng)的一些功能方法在新系統(tǒng)中引用。


Java中的應(yīng)用:


裝飾模式和適配器模式在java中的I/O文件的操作中都有體現(xiàn)。


Java的IO庫(kù)中處理流的類有FIleInputStream,F(xiàn)ileOutputStream,DataInputStream,DataOutputStream類等。在InputStream,OutputStream,Reader,Writer結(jié)構(gòu)的內(nèi)部,有一些流處理器可以對(duì)另一些流處理器起到裝飾作用,形成新的,改善的流處理器。這就體現(xiàn)了裝飾模式的作用。同時(shí)在一些流處理器的內(nèi)部有對(duì)其他流處理器的功能的適配引用,這體現(xiàn)了適配器模式的優(yōu)點(diǎn)。


模式概念的出現(xiàn),完善到合理應(yīng)用是前輩們?cè)趯?shí)際的應(yīng)用中不斷總結(jié)的結(jié)晶。對(duì)于不同的需求合理的使用模式能起到事半功倍的效果,但是模式不是放之四海而皆準(zhǔn)的,況且模式也不是一成不變死板的,隨著技術(shù)的發(fā)展,工程師的智慧總結(jié),可能會(huì)有新的模式出現(xiàn)和舊的模式的消亡,模式就是為實(shí)際需要而生,沒(méi)必要上升到哲學(xué)這種高度。

上?,F(xiàn)易電子元器件有限公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

CopyRight 2020-2025 29711999.com.cn All rights reserved   滬ICP備2020031792號(hào)

電話

易經(jīng)理

18019251567

微信

易經(jīng)理

易經(jīng)理

頂部

咨詢