首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式實戰:Adapter 適配器模式完整解析(二)

     編輯:關於C語言

程式碼執行結果

適配器模式執行結果

代碼角色對應

  • IGame:Target(目標介面),Client 期望的介面
  • Lobby:Client,原代碼 IGame game = new Game(),現改為 new GameAdapter()
  • GameAdapter:Adapter(核心),實作 Target,內部持有 Adaptee
  • Game:Adaptee(被適配者),遵循不同介面

適配器工作內容

  • 不只是方法改名:StartScene → LoadScene、EnterPlayer(string) → EnterPlayer(int)
  • 參數轉換:玩家名稱 → 玩家 ID(GetPlayerIDByPlayerName)
  • 補充必要參數:LoadScene 需要 token,Adapter 內部補上 "Abcd1234"
  • 差異越大,Adapter 責任越重

採用時機

  • 代碼層面:需呼叫的類別介面不符合系統需求/Client 期望
  • 應用層面:產品遷移、合作模組變動導致介面不一致,或需建立無關類別間關係

實現要點

  • 前提:代碼必須基於介面程式設計,否則無法適配
  • Adapter 必須實作 Target 介面
  • 實作方式多樣:繼承適配 / 組合適配 / 適配器家族 / 抽象適配器

模式辨析

注意事項

適配兩個無關類別時評估成本:龐大適配器可能影響效能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
模式核心差異
Adapter遵循 Target 介面,解決介面不相容,事後補救
Facade不一定遵循介面,簡化子系統介面,設計時規劃
Proxy提供相同/不同介面,控制存取,設計時即納入