适配器设计模式

定义:将一个类的接口变成客户期待的另一种接口,从而使原本因为接口不匹配而无法在一起工作的两个类能够在一起工作。
通俗理解:把结果拿过来,操作成需要的返回

适配器三个角色

  1. Target目标角色:该角色定义把其他类转换为何种接口,也就是我们的期望接口
  2. Adaptee源角色:你想把谁换成目标接口,这个“谁”就是源角色,他是已经存在,运行良好的类或对象,通过适配器他将变为一个崭新的类
  3. Adapter适配器角色:他是需要新建立的,他的职责非常简单:把源目标转换为目标角色,通过类的继承或类关联

优点

  1. 可以让两个没有关系的类在一起运行
  2. 增加了类的透明性:我们只需要访问目标角色,其他具体的实现都委托给源角色,而这些对高层模块是透明的,也是它不需要关心的
  3. 提高了类的复用度 :源角色在原有的系统中还可以运行,在目标角色中也可以充当新的演员
  4. 灵活性非常好:不想要就删掉,想增加直接增加就好

使用场景:有动机需要修改一个已经投产中的接口时,适配器模式可能是最好的选择,比如系统扩展,需要使用一个已有或者新建立的类,但这个类又不符合系统的接口,这时候使用适配器模式

代码:

public class AdatperPattern {
    public static void main(String[] args) {
        new Adapter(new Speaker()).ListenSpeak();
    }
}
class Speaker{
    public String speak(){
        return "China";
    }
}
interface Listen{
    public String ListenSpeak();
}
class Adapter implements Listen{
    private Speaker speaker;
    public Adapter(Speaker speaker) {
        this.speaker = speaker;
    }
    @Override
    public String ListenSpeak() {
        String speak = speaker.speak();
        System.out.println("通过其他方式展示");
        return speak;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值