點擊查看:設計模式系列
定義:適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本接口不匹配而無法在一起工作的兩個類能夠在一起工作。
理解:把多個無關的類匹配同一個接口,客戶端實例化接口,使形成一個公共常用的的類結構。
例子:
網購支付:(工商支付,建設支付2種)很顯然這是兩個不同的開發商做的開發,故提供的接口方法不一致,也理所當然。
共性:獲取支付賬號,支付欠款,返回處理信息。
不同:提供接口,方法名不同;
工商返回處理信息接口方法名:GsPay()
建行返回處理信息接口方法名:JsPay()
為啦開發使用一個公共的類對這些接口進行處理:整理一個公共常用的類,方便開發調用與簡潔。
類圖:
工商建設接口代碼:
//工商銀行 public class Icbc { //工商銀行提供的接口方法 public void GsPay() { Console.WriteLine("我是工商銀行,你要用我!存錢?"); } } //建設銀行 public class Ccb { //建設銀行提供的接口方法 public void JsPay() { Console.WriteLine("我是建設銀行,你要用我!取錢?"); } }
適配器插銷轉換代碼:
//插線板 public interface Ipay { void Pay(); } //針對工商銀行的插銷 public class IcbcApter :Icbc, Ipay { public void Pay() { base.GsPay(); } } //針對建設銀行的插銷 public class CcbApter : Ccb, Ipay { public void Pay() { base.JsPay(); } }
客戶端調用:
public static void Main() { //工商 Ipay ipay = new IcbcApter(); ipay.Pay(); //建設 Ipay cpay = new CcbApter(); cpay.Pay(); Console.ReadLine(); }
適配器模式,就像一個插座一樣,把不同類的電器插銷都能通過他的轉接,正常的運行起來。再比如變壓器,讓不同的電壓轉換為統一可用的電壓。
有上程序克制,同過適配器的一個轉換我們的編程,就變的簡單,簡潔啦許多,而不用各個攻破所有的銀行接口,只需攻讀這個適配器即可。由此,適配器模式還是常用,好用的一種模式之一。