zoukankan      html  css  js  c++  java
  • 【大话设计模式】——适配器模式

    定义:

        将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原来由于接口不兼容而不能一起工作的类可以一起工作。

    类型:

        结构型模式

    分类:类适配器模式和对象适配器模式

           类适配器模式通过多重继承对接口进行匹配,而C#、VB.NET、JAVA等语言不支持多重继承,一个类只允许有一个父类。所以我们主要介绍的是对象适配器模式。

    类图:

                     

    代码:

    //Target类
        class Target
        {
            public virtual void Request()
            {
                Console.WriteLine("普通请求!");
            }
        } 
        //Adaptee类
        class Adaptee
        {
            public void SpecificRequest()
            {
                Console.WriteLine("特殊请求!");
            }
        }
        //Adapter类
        class Adapter : Target
        {
            private Adaptee adaptee = new Adaptee(); //建立一个私有的Adaptee对象
            public override void Request()
            {
                adaptee.SpecificRequest();
            }
        }
    //客户端代码
                Target target = new Adapter(); //实例化对象
                target.Request();
                Console.Read();

    优点和适用范围:

            两个类所做的事情相同或相似,希望复用这些现存的类,但是具有不同的接口与复用环境要求不一致,并且双方都不太容易修改的时候,此时应该考虑使用适配器模式。

           适配器模式可以使客户代码统一调用同一接口,更加简单、直接和紧凑。

    注意事项:

             适配器模式是在软件开发后期或维护期再考虑使用的模式。

             1、在软件设计阶段,事先预防接口不同的问题,就不会发生不匹配问题;

             2、如果有接口不统一问题发生时,首先应该考虑及时重构统一接口;

             3、只有碰到无法改变原有设计和代码的情况时,才考虑适配。

  • 相关阅读:
    express和koa,node.js的框架的区别——英文版
    深入javascript系列
    命名函数表达式相关
    闭包与作用域链,思考题目
    iOS开发之身份证号码校验
    iOS8中使用CoreLocation定位[转]
    iOS开发之应用内检测手机锁屏,解锁状态
    iOS8设置应用图标红点的权限问题
    删除已经配置的类库和移除CocoaPods[转]
    如何在Xcode6中添加空模板
  • 原文地址:https://www.cnblogs.com/ainima/p/6331056.html
Copyright © 2011-2022 走看看