設計模式- 適配器模式 (Adapter Pattern)

定義

適配器模式是通過一個類的接口轉換成客戶希望的另外一個接口,使原本由于接口不兼容而不能一起工作的那些類可以一起工作

適配器從結構上可以分為類適配器和對象適配器。其中類適配器使用繼承關系來對類進行適配,而對象適配器是使用對象引用的方法來進行適配的。

C#例子

    public interface ITarget
    {
        void Request();
    }
    public class Adaptee
    {
        /// <summary>
        /// 不能直接被客戶使用的方法
        /// </summary>
        public void SpecificRequest()
        {
            Console.WriteLine("這是原有特殊方法!");
        }
    }
    public class Adapter : Adaptee, ITarget
    {
        public void Request()
        {
            SpecificRequest();
        }
    }

適配器模式參與者:

  • ITarget:客戶所使用的與特定領域相關的接口。
  • Adaptee:需要適配的類接口。
  • Adapter:適配器,負責Adaptee的接口與Target接口進行適配。

適配器模式適用情形:

  • 當適用一個已存在的類,而它的接口不符合所要求的情況;
  • 想要創建一個可以復用的類,該類可以與原接口的類協調工作;
  • 在對象適配中,當要匹配數個子類的時候,對象適配器可以適配它們的父類接口。

適配器模式特點:

類適配器

  • 使得Adapter可以重定義Adaptee的部分行為。因為Adapter是Adaptee的一個子類
  • 僅僅引入了一個對象,并不需要額外的指針間接得到Adaptee。

對象適配器

  • 允許一個Adapter與多個Adaptee同時工作。Adapter也可以一次給所有的Adaptee添加功能;
  • 使得重定義Adaptee的行為比較困難。需要生成一個Adaptee的子類,然后使Adapter引入這個子類而不是引用Adaptee本身

其他

實例

舉個真實的例子,讀卡器是作為內存卡和筆記本之間的適配器。您將內存卡插入讀卡器,再將讀卡器插入筆記本,這樣就可以通過筆記本來讀取內存卡。

源碼地址

dotnet-design-patterns

其他設計模式

23種設計模式

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容