下面是一個使用C#實現適配器模式的示例代碼:
using System;// 目標接口
public interface ITarget
{void Request();
}// 目標類
public class Target : ITarget
{public void Request(){Console.WriteLine("目標類的請求");}
}// 需要適配的類
public class Adaptee
{public void SpecificRequest(){Console.WriteLine("需要適配的類的請求");}
}// 適配器類
public class Adapter : ITarget
{private readonly Adaptee adaptee;public Adapter(Adaptee adaptee){this.adaptee = adaptee;}public void Request(){adaptee.SpecificRequest();}
}// 示例代碼
class Program
{static void Main(string[] args){Adaptee adaptee = new Adaptee();ITarget target = new Adapter(adaptee);target.Request();Console.ReadKey();}
}
在上述示例中,我們首先定義了一個目標接口ITarget,它包含了一個Request方法。然后我們創建了一個目標類Target,它實現了目標接口,并提供了具體的業務邏輯。
接下來,我們創建了一個需要適配的類Adaptee,它包含了一個SpecificRequest方法,表示它所提供的不兼容的接口。
然后,我們創建了一個適配器類Adapter,它實現了目標接口ITarget,同時在內部持有一個需要適配的類Adaptee的實例。適配器類中的Request方法實際上是調用了Adaptee的SpecificRequest方法,將其轉換成目標接口的調用。
在示例代碼中,我們創建了一個Adaptee對象和一個適配器Adapter對象,然后通過適配器對象調用目標接口的Request方法。運行代碼后,你將看到"需要適配的類的請求"這個輸出。
通過使用適配器模式,我們可以將不兼容的接口轉換成目標接口,使得這些不兼容的類可以協同工作。適配器模式可以幫助我們復用已有的代碼,提高代碼的靈活性和可維護性。