适配器模式的好处是什么,可以达到什么目的

适配器模式

网上一些设计模式功能体现的不够,看不出运用设计模式到底可以得到什么效果

先初始化几个类先,分别是日本110v做饭类,中国220做饭类

日本做饭类

public interface JP110VInterface {
    void connect();
}
public class JP110VInterfaceImpl implements JP110VInterface {
    @Override
    public void connect() {
        System.out.println("日本110V,接通电源,开始工作..");
    }

}

中国做饭类

public interface CN220VInterface {
    void connect();
}
public class CN220VInterfaceImpl implements CN220VInterface {
    @Override
    public void connect() {
        System.out.println("中国220V,接通电源,开始工作");
    }
}

现在分别进行工作

JP110VInterface jp110VInterface = new JP110VInterfaceImpl();
CN220VInterface cn220VInterface = new CN220VInterfaceImpl();
jp110VInterface.connect();
cn220VInterface.connect();

得到的效果图如下,可以看到分别进行工作了,但是现在我想要做到日本110v可以在中国做饭,我应该怎么做呢?

image-20220630174109846

目的:日本电饭煲110v在中国进行工作

先初始化一个做饭类,里面是日本110v做饭的功能,如果这个时候传入的是日本110v类,那还是不能达到目的,那我们就要考虑用中国220v做饭类来替代了,于是想到新建一个继承了日本110v的实现类

public class ElectricCooker {
    private JP110VInterface jp110VInterface;

    public ElectricCooker(JP110VInterface jp110VInterface) {
        this.jp110VInterface = jp110VInterface;
    }

    public void cook() {
        jp110VInterface.connect();
        System.out.println("做饭了结束了..");
    }
}

日本110v做饭实现类,实际里面是中国220v做饭类

public class PowerAdaptor implements JP110VInterface {
    private final CN220VInterface cn220VInterface;

    public PowerAdaptor(CN220VInterface cn220VInterface) {
        this.cn220VInterface = cn220VInterface;
    }

    @Override
    public void connect() {
        cn220VInterface.connect();
    }
}

测试运行

    public static void main(String[] args) {
        JP110VInterface jp110VInterface = new JP110VInterfaceImpl();
        CN220VInterface cn220VInterface = new CN220VInterfaceImpl();
//        jp110VInterface.connect();
//        cn220VInterface.connect();


        PowerAdaptor powerAdaptor = new PowerAdaptor(cn220VInterface);
        ElectricCooker electricCooker = new ElectricCooker(powerAdaptor);
        electricCooker.cook();

    }

image-20220630174616046

可以看到,日本110做饭类变成了中国220v做饭类,实现类适配的效果,这就是适配模式可以达到的目的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值