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

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

    使用步骤:

    步骤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类。

  • 相关阅读:
    P1396 营救
    [BUUCTF]REVERSE——xor
    [BUUCTF]REVERSE——helloword
    [BUUCTF]REVERSE——[BJDCTF 2nd]guessgame
    [BUUCTF]REVERSE——新年快乐
    [BUUCTF]PWN——jarvisoj_level3
    [BUUCTF]PWN——[BJDCTF 2nd]test
    [BUUCTF]PWN——ciscn_2019_es_2
    [BUUCTF]PWN——[Black Watch 入群题]PWN
    [BUUCTF]PWN——others_shellcode
  • 原文地址:https://www.cnblogs.com/xiangkejin/p/6875517.html
Copyright © 2011-2022 走看看