二、每周一个设计模式之(适配器模式)

1、什么是适配器模式?

​ 在程序中经常会有现存的代码没法直接使用的情况(如版本兼容),需要做适当的变换才能使用,处理这两者之间差异的设计模式就叫适配器设计模式。

​ 适配器模式分为:类适配器模式(继承方式)和对象适配器模式(组合方式)
举个实际点的例子:如果项目中你只能收发json格式的报文、他只能收发xml格式的,那这就需要中间有人帮你们处理,这个中间人即适配器,这种设计模式就是适配器模式。

2、类适配器模式

​ 现有Banner类、Print接口、BannerPrint类(继承了Banner类,实现Print接口)。

public class Banner {
    private String string;

    Banner(String string){
        this.string = string;
    }

    public void showWithParen(){
        System.out.println("("+string+")"); //打印(hello)
    }

    public void showWithAster(){
        System.out.println("*"+string+"*");//打印*hello*
    }
}
public interface Print {
    void printWeak(); //想让他打印(hello)
    void printStrong(); //想让他打印*hello*
}
public class PrintBanner extends Banner implements Print{ 

    PrintBanner(String string){
        super(string);
    }

    @Override
    public void printWeak() {
        showWithParen(); 
    }

    @Override
    public void printStrong() {
        showWithAster();
    }
}

这里的适配器不够复杂,可能感觉没多大用,现在是在展示适配模式,真实环境处理适配不会这么简单

3、对象适配器模式

​ 对象适配器模式与类适配器模式的区别在于,PrintBanner不再继承Banner,而是含有一个Banner类型的成员属性,同时初始化PrintBanner的时候,同时初始化Banner。这里不在贴代码。

4、源码

​ InputStreamReader是InputStream和Reader之间的桥梁,比较复杂,知道就行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值