设计模式之【适配器模式】

我们生活中很熟悉的转换插头,因为全球有几种不同的插座接口标准,国内使用的插头不一定适用于国外一些国家的插座,这时候,就需要用到转换插头了。我手中的这个就是德标转国标的。

在这里插入图片描述

你看,这不就类似我们设计模式中的适配器模式嘛?


将一个类的接口转换成客户希望的另外一个接口,使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。

文字描述不容易理解没关系,通过下图,应该会有一个更直观的认识。

在这里插入图片描述

需求总是会不断地变化,现在我们需要从旧厂商类切换到新厂商类,由于现有的系统与新厂商类彼此不兼容,修改某一个类以兼容另外一个类,都不是件轻松的事。这时候,就需要适配器模式来“救场”了。你看,只需要增加一个适配器的代码,就可以了,很轻松。

有了直观的认识之后,我们就来好好地认识一下适配器模式。

在这里插入图片描述

  • Target目标角色:该角色定义把其他类转换为何种接口,也就是我们的期望接口。
  • Adaptee源角色:你想把谁转换成目标角色,这个“谁”就是源角色,它是已经存在的,运行良好的类或对象,经过适配器角色的包装,它会成为一个崭新的角色。
  • Adapter适配器角色:适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是需要新建立的,它的职责非常简单:就是把源角色转换为目标角色。

适配器模式有两种实现方式:类适配器对象适配器。其中,类适配器使用继承关系来实现,对象适配器使用组合关系来实现。

类适配器

类适配器的重点在于类,是通过构造一个继承Adaptee类来实现适配器的功能。

Adaptee:小明进入NBA了,但是他只会用中文沟通,

// 已存在的,但是不符合我们既有的标准接口的类
public class XiaoMing {
   
    private int Num;
    private String name;
    
    // 只会用中文沟通
    public void Chinese() {
   
        System.out.println("用中文沟通");
    }
}

Target:但是球队教练是法国人,只会法语和英语,不用用中文。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值