擴充卡模式,将一個類裝換成客戶期望的另外一個接口。Adapter模式使的原本由于接口不相容而不能工作的那些類可以一起工作。
1、使用第三方元件,而這個元件的接口與目前系統接口不相容(如方法與系統方法不一緻等),可以使用擴充卡模式解決接口不相容問題。
2、使用早前項目一些有用的類,可以用擴充卡模式解決現有接口與原有對象接口不相容問題。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnau4mclRHdhB1XyVGdwFGZB9CXuJXZ0RXYQBjMlIXZ0BXYkF0Lc5mclRHdhBHMyUibnl2clR0LcVXc3l3Lc12bj91cn9Gbi52YvwVbvNmLzd2bsJmbj5ycldWYtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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();
場景:系統調用第三方計算類庫Calculator,一開始調用的是帶兩個整型參數的Add方法,後來計算類庫中的Add方法兩個參數變為Float類型,此時再使用就的調用方式需要更改客戶代碼,這是不好的解決辦法,較好的解決辦法是,使用擴充卡模式解決接口不一緻問題。
Add方法參數變更前的調用方式:
Add方法參數類型變更後,增加擴充卡類CaculatorAdapter, 解決了接口不一緻問題。如下圖:
擴充卡模式,将一個類裝換成客戶期望的另外一個接口。Adapter模式統一了不相容對象的接口,使的原本由于接口不相容而不能工作的那些類可以一起工作。
本文轉自靈動生活部落格園部落格,原文連結:http://www.cnblogs.com/ywqu/archive/2010/01/14/1647864.html ,如需轉載請自行聯系原作者