zoukankan      html  css  js  c++  java
  • 设计模式之适配器模式

    定义(百度百科):
           在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。
    一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

    UML类图:

    具体代码:

    public class Client {
        public static void main(String[] args) {
            Adaptee adaptee = new Adaptee();
            Adapter adapter = new Adapter(adaptee);
            adapter.request();
        }
    }
    
    public interface Target {
        void request();
    }
    
    public class Adaptee {
        void adapteeRequest() {
            System.out.println("本类");
        }
    }
    
    public class Adapter implements Target {
    
        Adapter(Adaptee adaptee) {
            this.adaptee = adaptee;
        }
        private Adaptee adaptee;
        @Override
        public void request() {
            System.out.println("适配类");
            adaptee.adapteeRequest();
        }
    }

    举例说明:
           此模式日常的例子,最常见的就是各种各样的转接口,Mac本连投影仪,一般都是需要转接口转接一下的,这就是适配器模式。
    在实际开发的例子中,现在系统都是迭代开发的,一步步累计,出现的情况就是,同样的功能可能有两个或多个不同的接口,
    有的需要调用之前的,有的调用后来的,都乱掉了,那就需要加一层适配器,把两个新旧的兼容起来。

    适用场景:
           你想使用一个已经存在的类,而它的接口不符合你的需求。
           你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
           你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口

    优缺点:

    优点:
    更好的复用性和扩展性

    缺点:
    很多的适配器结合起来,会使系统过于过乱,不容易把握。

    总结:适配器模式相对简单,总结起来就是两个字“兼容”,这就是这种模式的精髓,当然系统不需要兼容更好。

  • 相关阅读:
    data:image/png;base64
    禅道项目管理软件
    ASP.NET MVC验证
    Visual Studio 2013/2015/2017快捷键(转)
    css默认值汇总
    转载:火狐的默认样式表
    浅析CSS——元素重叠及position定位的z-index顺序
    浏览器默认样式(User Agent Stylesheet)
    MVC ajaxSubmit上传图片
    jquery.validate运用和扩展
  • 原文地址:https://www.cnblogs.com/daily-note/p/7150691.html
Copyright © 2011-2022 走看看