设计模式学习笔记——适配器模式

61 阅读1分钟

提供一个共同的接口,让两个原本不能接合在一起的东西可以接合在一起。

\

或者说,提供一个包装类,将A按照B的要求包装一下,使得B可以使用A。

\

适配器适用于两个已存在,且不方便更改的情况。或者说,只新增了一个适配器,原先的两个东东无须更改,符合开闭原则。这点又有点象外观模式。

\

\

class Adapter extends Target {  
    private Adaptee adaptee; //适配者;就是需要被适配的家伙;
      
    public Adapter(Adaptee adaptee) {  //适配器
        this.adaptee=adaptee;  
    }  
      
    public void request() {  
        adaptee.specificRequest(); //转发调用  
    }  
}  


\

\

适配器模式比较容易理解。但还有一些适配器模式的变种:

1、默认适配器模式

接口里面的方法很多,如果只需实现其中一些的话,可以设置一个抽象类,继承该接口,将不必要的方法实现为空方法,而具体类继承抽象类,实现必要的方法。

\

2、双向适配器

适配器同时包含对目标类和适配者类的引用,那么目标类固然可以通过它来调用适配者的方法,同时适配者也可以通过它来调用目标类方法。