适配器模式

1.基本作用:适配器模式可以将一个类的接口和另一个类的接口匹配起来。

2.下面我们来举一个java io中的一个适配器实例
InputStream:是表示字节输入流的所有类的超类。
Reader:是用于读取字符流的抽象类。
InputStreamReader: 将字节流转换为字符流。是字节流通向字符流的桥梁。
如何将这两者关联起来,这里就用到了适配器模式,jdk中使用的是对象适配器。下面我们照着jdk自己写个简单的对象适配器:

// Reader抽象类
abstract class Reader {
    /*读方法*/
    public abstract int read();
}
interface InputStream {
    public int read();
}
// InputStreamReader 适配器类
class InputStreamReader extends Reader{
    InputStream in ;
    public InputStreamReader(InputStream in) {
        this.in = in ;
    }
    @Override
    public int read() {
        System.out.println("做一些操作, 然后适配 InputStream 的读取");
        return in.read();
    }
}
// main测试
    public static void main(String[] args) throws FileNotFoundException {
        // jdk 原始 形势
        new java.io.InputStreamReader(new java.io.FileInputStream(new File(""))) ;

        // 自己写的适配器模式,是不是结构是一样的
        new InputStreamReader(new InputStream() {
            @Override
            public int read() {
                // TODO Auto-generated method stub
                return 0;
            }
        });
    }

类适配器模式:类适配器模式和对象适配器模式最大的区别在于适配器和适配者之间的关系不同,对象适配器模式中适配器和适配者之间是关联关系,而类适配器模式中适配器和适配者是继承关系。

// 这种形式 就是 类适配器
class InputStreamReader extends Reader implements InputStream {
    @Override
    public int read() {
        System.out.println("做一些操作, 然后适配 InputStream 的读取");
    }
}

适配器就到这里,谢谢大家。

老生常谈:深圳有爱好音乐的会打鼓(吉他,键盘,贝斯等)的程序员和其它职业可以一起交流加入我们乐队一起嗨。我的QQ:657455400

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值