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

C# 設計模式:適配器模式 (3) - Object Adapter 結構圖、角色分析與結構性程式碼

     編輯:關於C語言

Object Adapter UML 結構

Client 呼叫 Request(),Adapter 內部包裝 Adaptee 實例,將 Request() 轉呼叫 SpecificRequest()。Adapter 與 Adaptee 為委派關係,故為 Object Adapter。

四大角色

  1. Target (目標):客戶期望介面 (介面/抽象/具體類皆可)。
  2. Adaptee (源):需適配的現有類。
  3. Adapter (適配器):內部包裝 Adaptee,轉換介面。

結構性程式碼

using System;
class Target
{
    public virtual void Request() { /* 預設實作 */ }
}
class Adapter : Target
{
    private Adaptee adaptee = new Adaptee();
    public override void Request()
    {
        // 可做資料轉換
        adaptee.SpecificRequest();
    }
}
class Adaptee
{
    public void SpecificRequest() => Console.WriteLine("Called SpecificRequest()");
}
public class Client
{
    static void Main()
    {
        Target t = new Adapter();
        t.Request(); // 實際呼叫 Adaptee.SpecificRequest()
    }
}

關鍵點

  • Adapter 繼承/實作 Target,組合 Adaptee (而非繼承)。
  • Request() 內可做資料轉換後再委派。
  • 符合「合成/聚合復用原則」 (CARP),比繼承更彈性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved