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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

【设计模式】适配器模式 ( 概念 | 适用场景 | 优缺点 | 外观模式对比 | 适配器模式相关角色 | 类适配器 | 对象适配器 | 实现流程 )

發(fā)布時間:2025/6/17 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【设计模式】适配器模式 ( 概念 | 适用场景 | 优缺点 | 外观模式对比 | 适配器模式相关角色 | 类适配器 | 对象适配器 | 实现流程 ) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

        • I . 適配器模式概念
        • II . 適配器模式 適用場景
        • III . 適配器模式 優(yōu)缺點
        • IV . 適配器模式 與 外觀模式對比
        • V . 適配器模式 相關角色 ( 重點 )
        • VI . 適配器模式 ( 類適配器 ) 代碼實現(xiàn)流程 ( 重點 )
        • VII . 適配器模式 ( 對象適配器 ) 代碼實現(xiàn)流程 ( 重點 )



I . 適配器模式概念



適配器模式 :


① 設計模式類型 : 結構型 ;

② 概念 : 將 類的接口 轉換成用戶可以調(diào)用的 另外一個接口 ;

③ 目的 : 使接口不兼容的兩個類可以一起工作 ;

④ 概念中的三個角色 : 被適配者 ( 現(xiàn)有的功能類 ) , 用戶目標接口 ( 用戶調(diào)用的接口 ) , 適配器類 ( 用戶通過調(diào)用該類 , 間接調(diào)用 被適配者類 ) ;

⑤ 簡易原理 : 適配器類 實現(xiàn)用戶目標接口 , 在該接口的實現(xiàn)類中調(diào)用被適配者 , 實現(xiàn)了接口轉接的效果 ; 使用的時候 , 通過創(chuàng)建適配器類 , 即可間接調(diào)用被適配者方法 ;



II . 適配器模式 適用場景



1 . 功能正確但接口不匹配 : 對于之前開發(fā)好的類 , 該類的操作和返回值都是正確的 , 但是其定義的方法接口無法調(diào)用 , 此時使用適配器模式 , 使該類與用戶的接口匹配 , 讓用戶使用適配器的接口 , 間接調(diào)用該類 ;


2 . 適配器模式使用階段 : 軟件設計開發(fā)階段一般不使用適配器模式 , 在軟件維護時 , 出現(xiàn)操作和返回值類似 , 但是函數(shù)接口不同 , 為了適配第三方系統(tǒng)的接口 , 使用適配器模式 ;


設計階段不要使用適配器模式 ;


3 . 適配器的兩種實現(xiàn)方式 : 對象適配器模式 與 類適配器 ;


① 對象適配器 : 符合組合復用原則 , 使用了委托機制 ; ( 通過組合實現(xiàn) , 適配器類中維護被適配者成員 )

② 類適配器 : 通過類的繼承實現(xiàn)適配器模式 ; ( 通過繼承實現(xiàn) , 適配器類繼承被適配者類 )


推薦使用對象適配器模式 , 在繼承與組合二者之間 , 優(yōu)先選擇組合方案 ;



III . 適配器模式 優(yōu)缺點



1 . 適配器模式 優(yōu)點 :


① 復用且不修改類 : 不改變現(xiàn)有類的基礎上 , 提高類的復用性 , 透明性 ; 讓現(xiàn)有類與目標類接口匹配 ;

② 降低耦合 : 目標類 ( 用戶調(diào)用的接口所在類 ) 和 現(xiàn)有類 ( 被適配者 ) 解除耦合 , 降低了系統(tǒng)的耦合性 , 易于擴展維護 ;

③ 符合開閉原則 : 用戶調(diào)用適配器接口 , 只與適配器類進行交互 , 如果需要修改擴展 , 只需要修改適配器類即可 , 目標類 和 現(xiàn)有類 各自都是相互獨立的 , 互不影響 ;


2 . 適配器模式 優(yōu)點 :


① 增加復雜性 : 編寫適配器類時 , 需要考慮全面 , 包括被適配者 和 目標類 , 系統(tǒng)復雜性會增加 ;

② 降低可讀性 : 系統(tǒng)代碼可讀性降低 , 可維護性降低 ;


閱讀代碼時 , 調(diào)用系統(tǒng)接口 , 如果調(diào)用的是適配器接口 , 還要到處找調(diào)用的是哪個現(xiàn)有類的實際接口 ;



IV . 適配器模式 與 外觀模式對比



1 . 相同點 : 都是對現(xiàn)有類進行封裝 ;


2 . 行為分析 :


① 外觀模式行為 : 外觀模式定義了新街口 , 處理多個子系統(tǒng)之間的交互 ;

② 適配器模式行為 : 適配器模式復用原有接口 , 只是簡單的轉接了一下 , 使兩個現(xiàn)存接口 ( 現(xiàn)有類 和 目標類 ) 協(xié)同工作 ;


3 . 適配力度分析 :


① 外觀模式 : 適配力度很大 , 需要開發(fā)整個子系統(tǒng)之間的交互流程 ;

② 適配器模式 : 修改很少的內(nèi)容 , 只是進行簡單的接口轉接交互 , 一般不實現(xiàn)具體的功能 ;



V . 適配器模式 相關角色 ( 重點 )



1 . 被適配者 : 實際功能提供者 , 是系統(tǒng)中原有的類 ;


2 . 用戶目標接口 : 用戶調(diào)用該接口 , 實現(xiàn)功能操作 ; 是適配器的父類接口 ;


3 . 適配器 : 需要實現(xiàn) 用戶目標接口 , 并在接口中的操作中 , 調(diào)用被適配者提供的實際功能 ; 適配器有兩種途徑實現(xiàn) , 分別是類適配器 , 對象適配器 ;


① 類適配器 : 繼承被適配者 , 通過 super 訪問被適配者方法 ;

② 對象適配器 ( 推薦 ) : 在適配器中維護一個被適配者成員變量 , 通過成員變量訪問被適配者方法 ;



VI . 適配器模式 ( 類適配器 ) 代碼實現(xiàn)流程 ( 重點 )



1 . 明確被適配者 : 被適配者 是一個現(xiàn)有類 , 該類保持不變 ;


2 . 定義用戶目標接口 : 用戶通過調(diào)用該接口 , 實現(xiàn)實際的功能 , 該功能與適配者中的功能類似 , 但 接口不同 ;


3 . 聲明適配器 ( 類適配器 ) :


① 適配器 實現(xiàn) 用戶目標接口 : 適配器 需要實現(xiàn) 用戶目標接口 , 在實現(xiàn)的接口方法中 , 需要將實際操作 委托給 被適配者 ;

② 適配器 繼承 被適配者 : 如何調(diào)用到 被適配者 的方法呢 , 這里 適配器 通過 繼承 被適配者 , 獲取調(diào)用 被適配者 方法的資格 ;

③ 委托操作 : 在實現(xiàn)的 用戶目標接口中 , 通過 super 關鍵字 , 調(diào)用 被適配者 的方法實現(xiàn)具體功能 ;


類適配器 對象適配器 , 本質(zhì)區(qū)別就是 適配器類訪問 被適配者的途徑 ;
類適配器 : 通過繼承 被適配器 , 獲取訪問被適配器方法的資格 ;
對象適配器 : 通過在其內(nèi)部維護一個 被適配者 成員變量 , 進而通過該成員變量訪問 被適配者方法 ;


4 . 用戶訪問操作 :


① 定義目標接口變量 : 定義 用戶目標接口 對象變量 ;

② 目標接口變量賦值 : 創(chuàng)建 適配器對象 賦值給上述 用戶目標接口對象變量 , ( 適配器 是 用戶目標接口 的子類 ) ;

③ 目標接口調(diào)用 : 調(diào)用用戶目標接口 , 即可調(diào)用被適配者的實際功能方法 ;



VII . 適配器模式 ( 對象適配器 ) 代碼實現(xiàn)流程 ( 重點 )



1 . 明確被適配者 : 被適配者 是一個現(xiàn)有類 , 該類保持不變 ;


2 . 定義用戶目標接口 : 用戶通過調(diào)用該接口 , 實現(xiàn)實際的功能 , 該功能與適配者中的功能類似 , 但 接口不同 ;


3 . 聲明適配器 :


① 適配器 實現(xiàn) 用戶目標接口 : 適配器 需要實現(xiàn) 用戶目標接口 , 在實現(xiàn)的接口方法中 , 需要將實際操作 委托給 被適配者 ;

② 適配器 維護 被適配者 類型成員變量 : 如何調(diào)用到 被適配者 的方法呢 , 這里 適配器 通過 定義 被適配者 類型的成員變量 , 通過該 被適配者 類型成員變量 , 調(diào)用 被適配者 public 方法 ;

③ 委托操作 : 在實現(xiàn)的 用戶目標接口中 , 通過 被適配者類型 成員變量 , 調(diào)用 被適配者 的方法實現(xiàn)具體功能 ;


類適配器 對象適配器 , 本質(zhì)區(qū)別就是 適配器類訪問 被適配者的途徑 ;
類適配器 : 通過繼承 被適配器 , 獲取訪問被適配器方法的資格 ;
對象適配器 : 通過在其內(nèi)部維護一個 被適配者 成員變量 , 進而通過該成員變量訪問 被適配者方法 ;


4 . 用戶訪問操作 :


① 定義目標接口變量 : 定義 用戶目標接口 對象變量 ;

② 目標接口變量賦值 : 創(chuàng)建 適配器對象 賦值給上述 用戶目標接口對象變量 , ( 適配器 是 用戶目標接口 的子類 ) ;

③ 目標接口調(diào)用 : 調(diào)用用戶目標接口 , 即可調(diào)用被適配者的實際功能方法 ;

總結

以上是生活随笔為你收集整理的【设计模式】适配器模式 ( 概念 | 适用场景 | 优缺点 | 外观模式对比 | 适配器模式相关角色 | 类适配器 | 对象适配器 | 实现流程 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。