设计模式之适配器模式 (2)

为被适配者类定义第二个子类实现(罗技耳机)

package cn.hsh.study.object.adapter; /** * @author shaohua * @date 2021/4/15 20:43 */ public class Logic extends Headset { @Override public void out() { System.out.println("罗技耳机发出声音"); } }

然后到了最关键的步骤,我们来定义适配器。这里我们可以看到,我们将类适配器的继承模式改为了关联模式。

package cn.hsh.study.object.adapter; /** * @author shaohua * @date 2021/4/15 20:41 */ public class Adapter implements Computer { private Headset headset; public Adapter(Headset headset){ this.headset = headset; } public void out() { this.headset.out(); } }

最后客户端调用

package cn.hsh.study.object.adapter; /** * @author shaohua * @date 2021/4/15 20:41 */ public class Client { public static void main(String[] args) { Computer computer = new Adapter(new HUAWEIHeadset()); computer.out(); computer = new Adapter(new Logic()); computer.out(); } }

我们来看客户端调用, 这个时候我们就实现了一个适配器类适配多个被适配者类的方式,我们可以为多个类型的耳机进行适配。

执行结果

设计模式之适配器模式

总结

适配器模式不应该在系统的设计之初使用,而是在系统升级维护,或者对接第三方系统导致双方接口不兼容的时候才使用,使用的时候是用类适配器还是对象适配器根据具体情况而定,各有优缺点。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyszx.html