• 设计模式-适配器模式


    前言

    点击查看:设计模式系列 

    适配器模式(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,数据结构。

  • 相关阅读:
    文化因素对商标翻译的影响
    Building An Effective Marketing Plan
    HipHop PHP简介(转)
    关于comet
    TI BSL in python
    剖析 HTTP 协议
    NSIS 打包脚本基础
    图解使用VS的安装项目打包程序
    [Java IO]06_JSON操作
    [Java IO]04_系统标准IO
  • 原文地址:https://www.cnblogs.com/knowledgesea/p/3934994.html
Copyright © 2020-2023  润新知