设计模式之适配器模式

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

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本连投影仪,一般都是需要转接口转接一下的,这就是适配器模式。
在实际开发的例子中,现在系统都是迭代开发的,一步步累计,出现的情况就是,同样的功能可能有两个或多个不同的接口,
有的需要调用之前的,有的调用后来的,都乱掉了,那就需要加一层适配器,把两个新旧的兼容起来。

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

优缺点:

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

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

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

posted @ 2017-07-11 15:15  重名  阅读(258)  评论(0编辑  收藏  举报