Net設計模式實例之適配器模式(Adapter Pattern)

一、適配器模式簡介(Brief Introduction

適配器模式,將一個類裝換成客戶期望的另外一個接口。Adapter模式使的原本由於接口不兼容而不能工作的那些類可以一起工作。

二、解決的問題(What To Solve

1、使用第三方組件,而這個組件的接口與目前系統接口不兼容(如方法與系統方法不一致等),可以使用適配器模式解決接口不兼容問題。
2、使用早前項目一些有用的類,可以用適配器模式解決現有接口與原有對象接口不兼容問題。

三、適配器模式分析(Analysis

1、適配器模式結構

 

 

 

 

 

 

 

 

 

 

 

 

 

2、源代碼

1、客戶期待的接口或者抽象類Target

public abstract class Target

{

    public abstract void Request();

}

 

2、要適配的類Adaptee,也就是與期望調用接口不相符的類

public class Adaptee

{

    public void SepecificRequest()

    {

        Console.WriteLine("執行要適配類的特殊請求方法");

    }

}

 

3、適配器類Adapter把源接口轉換成目標接口,包行變量adaptee

public class Adapter:Target

{

    private Adaptee adaptee;

    public override void Request()

    {

        if (adaptee == null)

        {

            adaptee = new Adaptee();

        }

        adaptee.SepecificRequest();

    }

}

 

4、客戶端代碼

static void Main(string[] args)

{

    Target target = new Adapter();

    target.Request();

    Console.Read();

}

3、程序運行結果

 

四、案例分析(Example

場景:系統調用第三方計算類庫Calculator,一開始調用的是帶兩個整型參數的Add方法,後來計算類庫中的Add方法兩個參數變爲Float類型,此時再使用就的調用方式需要更改客戶代碼,這是不好的解決辦法,較好的解決辦法是,使用適配器模式解決接口不一致問題。

Add方法參數變更前的調用方式:
 
 

 

Add方法參數類型變更後,增加適配器類CaculatorAdapter, 解決了接口不一致問題。如下圖:
  

五、總結(Summary

適配器模式,將一個類裝換成客戶期望的另外一個接口。Adapter模式統一了不兼容對象的接口,使的原本由於接口不兼容而不能工作的那些類可以一起工作。

0

收藏

靈動生活

98篇文章,72W+人氣,11粉絲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章