
Client 呼叫 Request(),Adapter 內部包裝 Adaptee 實例,將 Request() 轉呼叫 SpecificRequest()。Adapter 與 Adaptee 為委派關係,故為 Object Adapter。
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()
}
}
Request() 內可做資料轉換後再委派。