前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >适配器模式

适配器模式

作者头像
许喜朝
发布2022-05-05 16:58:42
3340
发布2022-05-05 16:58:42
举报
文章被收录于专栏:生如夏花的个人博客

适配器模式

模式定义

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

应用场景

当你希望使用某些现有类,但其他接口与你的其他代码不兼容时,请使用适配器模式

当你希望重用几个现有的子类,这些子类缺少一些不能添加到超类中的公共功能时,请使用适配器模式

优点

符合单一指责原则

符合开闭原则

实现
对象适配器模式
代码语言:javascript
复制
package v1;

/**
 * 对象适配器模式
 * 需求:
 * 将家用220v电压转换成手机能使用的5v电压
 */
class Adaptee{
    private int output220v;
    public int output220v(){
        return 220;
    }
}
interface Target{
    int output5v();
}
class Adapter implements Target{
    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public int output5v() {
        int i = adaptee.output220v();
        // ....
        System.out.println(String.format("原始电压:%d -> %d",i,5));
        return 5;
    }
}
类的适配器模式
代码语言:javascript
复制
package v2;

/**
 * 类的适配器模式
 */
class Adaptee{
    private int output220v;
    public int output220v(){
        return 220;
    }
}

//目标电压接口
interface Target{
    int output5v();
}
class Adpater extends Adaptee implements Target{

    @Override
    public int output5v() {
        int i = output220v();
        System.out.println(String.format("原始电压:%d -> %d",i,5));
        return 5;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 适配器模式
    • 模式定义
      • 应用场景
        • 优点
          • 实现
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档