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

抽丝剥茧——适配器模式

作者头像
石的三次方
发布2021-01-05 22:29:49
2510
发布2021-01-05 22:29:49
举报
文章被收录于专栏:石的三次方

适配器设计模式

兄弟们好,今天和大家聊聊一聊适配器设计模式。这个模式在我们的生活中比较常见。

它的主要作用就是让两个无关的对象变的有关系起来。比如

  • 电源适配器,通过对电压的修改而已适应在不同的电源环境下进行充电
  • 网线接口适配器。可以将原本不能接入的接口在计算机上进行接入

「我们来看一下它的角色划分。」

  • 适配器。整合被适配对象,调用被适配对象的方法
  • 被适配对象。

「一个简单的图送给兄弟们:」

「它所做的事情就是通过继承或者组合的方式将被适配器对象整合到适配器对象中,然后在适配器对象中调用原本被适配器对象的方法,此时这个方法已经被适配器对象进行了一定程度的修改。」

我们再来看一下它的类图实现:

「代码实现:」

「被适配器对象:这里采用了组合的方式,通过传入不同的被适配对象进行不同的处理方式」

代码语言:javascript
复制
interface ACV{
    int output();
}
class AC220V implements ACV{
    public int output() {
        return 220;
    }
}

class AC110V implements ACV{
    public int output() {
        return 110;
    }
}

「适配器对象:」

代码语言:javascript
复制
interface DC5V {
    int dc5v();
}

class Adapter  implements DC5V {

    private ACV acv ;

    public Adapter(AC220V ac220V) {
        this.acv = ac220V;
    }

    public Adapter(AC110V ac110V) {
        this.acv = ac110V;
    }

    @Override
    public int dc5v() {
        int ac = 0;
        if (acv != null) {
            ac = acv.output();
        }
        int sta = ac / 5;
        return (ac / sta);
    }
}

「操作对象:」

代码语言:javascript
复制
public class AdapterDesgin {
    public static void main(String[] args) {
        DC5V dc5V =  new Adapter(new AC110V());
        int dc5 = dc5V.dc5v();
        System.out.println("转换后的电压为:" + dc5 + " 伏...");
    }
}

今天的设计模式就到这里了,兄弟们,晚安啊!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 石的三次方 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 适配器设计模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档