抽丝剥茧——适配器模式

2021-01-05 22:29:49 浏览数 (1)

适配器设计模式

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

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

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

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

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

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

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

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

「代码实现:」

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

代码语言: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   " 伏...");
    }
}

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

0 人点赞