设计模式—装饰模式和适配器模式

Posted 开拖拉机的蜡笔小新

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式—装饰模式和适配器模式相关的知识,希望对你有一定的参考价值。

把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。

使用步骤:

步骤1: 创建Target接口;

public interface Target {

    //这是源类Adapteee没有的方法
    public void Request(); 
}

步骤2: 创建源类(Adaptee) ;

public class Adaptee {

    public void SpecificRequest(){
    }
}

步骤3: 创建适配器类(Adapter)

//适配器Adapter继承自Adaptee,同时又实现了目标(Target)接口。
public class Adapter extends Adaptee implements Target {

    //目标接口要求调用Request()这个方法名,但源类Adaptee没有方法Request()
    //因此适配器补充上这个方法名
    //但实际上Request()只是调用源类Adaptee的SpecificRequest()方法的内容
    //所以适配器只是将SpecificRequest()方法作了一层封装,封装成Target可以调用的Request()而已
    @Override
    public void Request() {
        this.SpecificRequest();
    }

}

步骤4: 定义具体使用目标类,并通过Adapter类调用所需要的方法从而实现目标

public class AdapterPattern {

    public static void main(String[] args){

        Target mAdapter = new Adapter();
        mAdapter.Request();

    }
}

IO中的适配器模式:

InputStreamReader和OutputStreamWriter类分别继承了Reader和writer接口,但是要创建他们的对象必须在构造函数中传入一个InputStream和OutputStream

的实例,InputStreamReader和OutputStreamWriter类的作用也就是将InputStream和OutputStream适配到Reader和Writer。

适配器是InputStreamReader,源角色是InputStream代表的实例对象,目标接口就是Reader类。

以上是关于设计模式—装饰模式和适配器模式的主要内容,如果未能解决你的问题,请参考以下文章

跟我学设计模式视频教程——适配器模式,适配器模式VS装饰模式

设计模式—装饰模式和适配器模式

适配器模式和装饰器模式有什么区别?

设计模式 装饰器模式

设计模式之单例模式

装饰者模式,适配器模式,代理模式区别