程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> 設計模式-適配器模式

設計模式-適配器模式

編輯:C#基礎知識

前言

點擊查看:設計模式系列 

適配器模式(Adapter)

定義:適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本接口不匹配而無法在一起工作的兩個類能夠在一起工作。

理解:把多個無關的類匹配同一個接口,客戶端實例化接口,使形成一個公共常用的的類結構。

例子:

網購支付:(工商支付,建設支付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();
        }

總結適配器模式

適配器模式,就像一個插座一樣,把不同類的電器插銷都能通過他的轉接,正常的運行起來。再比如變壓器,讓不同的電壓轉換為統一可用的電壓。

有上程序克制,同過適配器的一個轉換我們的編程,就變的簡單,簡潔啦許多,而不用各個攻破所有的銀行接口,只需攻讀這個適配器即可。由此,適配器模式還是常用,好用的一種模式之一。

歡迎加入評論,交流探討,設計模式,數據庫,c#.net,數據結構。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved