91视频丝瓜-91视频完整版高清-91视频网-91视频网店-91视频网或将从此无大神-91视频网入口

您好,歡迎訪問上海現易電子元器件有限公司網站!

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

?適配器模式和裝飾模式的區別

文章出處:電源 責任編輯:上海現易電子元器件有限公司 發表時間:2018-01-15

裝飾模式指的是在不必改變原類文件和使用繼承的情況下,動態地擴展一個對象的功能。它是通過創建一個包裝對象,也就是裝飾來包裹真實的對象。


23種設計模式之一,英文叫Decorator Pattern,又叫裝飾者模式。裝飾模式是在不必改變原類文件和使用繼承的情況下,動態地擴展一個對象的功能。它是通過創建一個包裝對象,也就是裝飾來包裹真實的對象。


裝飾模式的特點


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


2) 裝飾對象包含一個真實對象的引用(reference)


3) 裝飾對象接受所有來自客戶端的請求。它把這些請求轉發給真實的對象。


4) 裝飾對象可以在轉發這些請求以前或以后增加一些附加功能。這樣就確保了在運行時,不用修改給定對象的結構就可以在外部增加附加的功能。在面向對象的設計中,通常是通過繼承來實現對給定類的功能擴展。

適配器模式


在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)將一個類的接口適配成用戶所期待的。一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中。


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


基本概念


客戶:需要調用我們的代碼的對象。


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


主要內容


(1)類適配器:


當客戶在接口中定義了他期望的行為時,我們就可以應用適配器模式,提供一個實現該接口的類,并且擴展已有的類,通過創建子類來實現適配。


下面是類適配器的UML圖:


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


裝飾模式與適配器模式的的區別


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


定義上:


裝飾模式:對客戶端透明的方式擴展對象的功能,是繼承關系的一個替代方案,提供比繼承更多的靈活性。使用原來被裝飾的類的一個子類的實例,把客戶端的調用委派到被裝飾類。


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


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


使用條件:


裝飾模式一般在下列情況使用:需要擴展一個類的功能或者給你個類增加附加責任;需要動態的給一個對象增加功能,這些功能可以再動態的撤銷;需要增加有一些基本功能的排列組合而產生非常大量的功能,從而使得繼承關系變得不現實。


適配器模式一般使用的情況包括:系統需要使用現有的類,但此類已經不符合系統的需要;


想要建立一個可以重復使用的類,用于與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的的類一起工作。適配器模式在系統升級的時候使用的頻率很高,對舊系統的一些功能方法在新系統中引用。


Java中的應用:


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


Java的IO庫中處理流的類有FIleInputStream,FileOutputStream,DataInputStream,DataOutputStream類等。在InputStream,OutputStream,Reader,Writer結構的內部,有一些流處理器可以對另一些流處理器起到裝飾作用,形成新的,改善的流處理器。這就體現了裝飾模式的作用。同時在一些流處理器的內部有對其他流處理器的功能的適配引用,這體現了適配器模式的優點。


模式概念的出現,完善到合理應用是前輩們在實際的應用中不斷總結的結晶。對于不同的需求合理的使用模式能起到事半功倍的效果,但是模式不是放之四海而皆準的,況且模式也不是一成不變死板的,隨著技術的發展,工程師的智慧總結,可能會有新的模式出現和舊的模式的消亡,模式就是為實際需要而生,沒必要上升到哲學這種高度。

上海現易電子元器件有限公司 版權所有 未經授權禁止復制或鏡像

CopyRight 2020-2025 www.urqm.cn All rights reserved   滬ICP備2020031792號

友情鏈接:

電話

易經理

18019251567

微信

易經理

易經理

頂部

咨詢
主站蜘蛛池模板: 五月丁香综合啪啪成人小说 | 爽的毛片 | 免费成人论坛 | 亚洲AV无码成人一区二区三区 | 久久久久久不卡 | 国产午夜永久福利视频在线观看 | 性欧美xxxxhd | 呻吟国产AV久久一区二区 | 国产视频自拍一区 | 国产男女猛烈无遮挡A片漫画 | аⅴ天堂中文在线网 | 欧美亚洲亚洲日韩在线影院 | 黄a网站| 国产亚洲999精品AA片在线爽 | 乱码丰满人妻一二三区 | 免费的中国黄网站大全 | 国内揄拍国产精品人妻电影 | 女人被添全过程A片久久AV | 么公一夜我要我八次 | 精品日产1区2卡三卡麻豆 | ds精品 | 国产成人高清视频免费播放 | 国内自拍一区 | 国产国产精品人在线观看 | 嗯好爽快点插我视频在线播放 | 伦理电影在线视频网站天堂 | 国色天香AV在线观看免费 | 中文字幕欧美在线 | 中文字幕不卡在线播放 | 日韩一品道 | 波多野结衣办公室jian 情 | 6080欧美一区二区三区四区 | 高辣H文黄暴糙汉文H文 | JIZJIZJIZ 日本老师水多 | 人妻体内射精一区二区三区 | 精品综合久久88色鬼首页 | 窝窝午夜看片国产精品人体宴 | 在线视频91 | 夜色99视频多人聊天室 | 波多野结衣一二三区 | 老司机精品视频一区二区 |