设计模式-适配器模式-Adapter

适配器模式的核心:让2个不匹配的接口在一起工作!

一、适配器的3个元素

1、源产品,例如本例中的汽车点烟器插口。
2、目标接口,例如本例中的USB接口。
3、适配器,也可以叫转换器,也就是本例中的点烟器。

二、适配器的工作原理

利用点烟器将点烟器插口转换成USB插口,点烟器则是适配器。

三、示例代码

1、源产品
/**
 * 作者: Created by AdminFun
 * 邮箱: 614484070@qq.com
 * 创建: 2019/1/4
 * 修改: 2019/1/4
 * 版本: v1.0.0
 * 描述: 产品-点烟器
 */
public class Cigarette implements ICigarette {

    @Override
    public Object Cigarette() {
        return "这是一个点烟器,点烟器就必须实现点烟器接口";
    }
}
2、目标接口
/**
 * 作者: Created by AdminFun
 * 邮箱: 614484070@qq.com
 * 创建: 2019/1/4
 * 修改: 2019/1/4
 * 版本: v1.0.0
 * 描述: 目标接口-USB接口
 */
public interface IUSBInterface {

    Object USBInterface();
}
3、适配器
/**
 * 作者: Created by AdminFun
 * 邮箱: 614484070@qq.com
 * 创建: 2019/1/2
 * 修改: 2019/1/2
 * 版本: v1.0.0
 * 模式:适配器模式:将不匹配的2个接口匹配在一起,使之能共同工作。
 * <p>
 * 分为类适配器和对象适配器
 * 对象适配器就是本例子中所讲,类适配器实现的效果一样,结构有差异而已。
 * <p>
 * 适配器模式的3个元素如下:
 * 1、source:源产品
 * 2、target:目标接口
 * 3、adapter:适配器/转换器
 * <p>
 * 适配器模式的工作原理如下:
 * 产品类实现源产品接口,适配器实现目标产品接口,在适配器中引入源产品,在实现方法中输出目标产品。
 */
public class PowerAdapter implements IUSBInterface {

    Cigarette cigarette;

    public PowerAdapter(Cigarette cigarette) {
        this.cigarette = cigarette;
    }

    @Override
    public Object USBInterface() {
        // 使用委托完成特殊功能,输出USB
        return null;
    }
}
4、使用
public static void main() {
        PowerAdapter adapter = new PowerAdapter(new Cigarette());
        adapter.USBInterface();
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值