天天看點

Net設計模式執行個體之擴充卡模式(Adapter Pattern)

擴充卡模式,将一個類裝換成客戶期望的另外一個接口。Adapter模式使的原本由于接口不相容而不能工作的那些類可以一起工作。

1、使用第三方元件,而這個元件的接口與目前系統接口不相容(如方法與系統方法不一緻等),可以使用擴充卡模式解決接口不相容問題。

2、使用早前項目一些有用的類,可以用擴充卡模式解決現有接口與原有對象接口不相容問題。

Net設計模式執行個體之擴充卡模式(Adapter Pattern)

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

public abstract class Target

{

    public abstract void Request();

}

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

public class Adaptee

    public void SpecificRequest()

    {

        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();

Net設計模式執行個體之擴充卡模式(Adapter Pattern)

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

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

Net設計模式執行個體之擴充卡模式(Adapter Pattern)

Add方法參數類型變更後,增加擴充卡類CaculatorAdapter, 解決了接口不一緻問題。如下圖:

Net設計模式執行個體之擴充卡模式(Adapter Pattern)

擴充卡模式,将一個類裝換成客戶期望的另外一個接口。Adapter模式統一了不相容對象的接口,使的原本由于接口不相容而不能工作的那些類可以一起工作。

    本文轉自靈動生活部落格園部落格,原文連結:http://www.cnblogs.com/ywqu/archive/2010/01/14/1647864.html ,如需轉載請自行聯系原作者

繼續閱讀