日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

『设计模式』适配器模式(Adapter)

發布時間:2023/12/15 asp.net 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 『设计模式』适配器模式(Adapter) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

23種設計模式+額外常用設計模式匯總 (持續更新)

適配器模式(Adapter)

適配器模式把一一個類的接口變換成客戶端所期待的另一種接口,從而使原本接口不匹配而無法在一起工作的兩個類能夠在一起工作。

實際上就是對類或者對象,找到一個翻譯,能夠使得源對象能夠匹配到現對象。

軟件系統設計和開發的問題

在軟件系統設計和開發中,這種問題也會經常遇到:
有時為了完成某項工作購買了一個第三方的庫來加快開發。這就帶來了一個問題:我們在應用程序中已經設計好了接口,與這個第三方提供的接口不一致,為了使得這些接口不兼容的類(不能在-起工作)可以在一起工作,Adapter模式提供了將一個類(第三方庫)的接口轉化為客戶(購買使用者)希望接口的方法。

兩種形式

  • 類的適配器模式
  • 對象的適配器模式

適配器模式結構


從圖中可以看出:客戶端需要調用Request方法,而Adaptee沒有該方法,為了使客戶端能夠使用Adaptee類,需要提供一個包裝(Wrapper) 類Adapter。這個包裝類包裝了一個Adaptee 的實例,從而將客戶端與Adaptee銜接起來。由于Adapter與Adaptee是委派(組合)關系,這決定了這個適配器模式是對象的。

  • 目標(Target)角色這是客戶所期待的接口。目標可以是具體的或抽象的類也可以是接口。
  • 源(Adaptee)角色需要適配的類
  • 適配器(Adapter)角色通過在內部包裝(Wrap)一個Adaptee對象,把源接口轉換成目標接口。

實現要點

  • Adapter模式主要應用于“希望復用一些現存的類,但是接口又與復用環境要求不一致的情況”,在遺留代碼復用、類庫遷移等方面非常有用。
  • Adapter模式有對象適配器和類適配器兩種形式的實現結構
    類適配器采用“多繼承”的實現方式帶來了不良的高耦合,所以一般不推薦使用。
    對象適配器采用“對象組合”的方式,更符合松耦合精神。

使用情況

  • 系統需要使用現有的類,而此類的接口不符合系統的需要。
  • 想要建立一個有以重復使用的類,該類可能與其它不相關的類或不可預見的類(即那些接口可能不一定兼容的類)協同工作。
  • (對對象適配器而言)在設計里,你想使用一些已經存在的子類,但是不可能對每一個子類都進行適配。對象適配器可以適配它們的父類接口(使用的擴展)。

優點

  • 更好的復用性
  • 更好的可擴展性
    在實現適配器功能的時候,可以調用自己開發的功能,從而自然地擴展系統的功能

缺點

過多地使用適配器,會讓系統非常凌亂,不容易整體進行把握。

本質

轉換匹配,復用功能。

實現

用戶能看到的接口

package 適配器模式;public class Target {public void Reuqest() {System.out.println("一般請求");} }

需要適配的類

package 適配器模式;public class Adaptee {public void specifiRequest(){System.out.println("特殊請求");} }

適配器

package 適配器模式;public class Adapter extends Target {private Adaptee adp=new Adaptee();@Overridepublic void Reuqest() {adp.specifiRequest();}}

客戶端

package 適配器模式;public class Client {public static void main(String[] args) {Target target=new Adapter();target.Reuqest();} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的『设计模式』适配器模式(Adapter)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。