设计模式——适配器模式(Adapter)

2019-07-14 01:53发布

文章目录

代码:GitHub

适配器设计模式(笔记本+电源+插座)

0. UML结构图

适配器模式UML结构图

1. Code示例

1.1 笔记本

/** * 笔记本电脑 * * @author ALion * @version 2019/1/29 22:31 */ public class Laptop { /** 电流 */ private double electricity; /** * 充电 * @param target 适配器 */ public void charge(Target target) { System.out.println("开始充电"); while (electricity < 100) { electricity += target.transport(); System.out.println("电量已有 " + electricity); } System.out.println("充电完成"); } }

1.2 电源插座

/** * 电源插座 * * @author ALion * @version 2019/1/29 22:42 */ public class PowerOutlet { /** * 返回电流 * @return 电流值 */ public int getElectricity() { return 10; } }

1.3 电源适配器

/** * 电源适配器 * * @author ALion * @version 2019/1/29 22:34 */ public class PowerAdapter implements Target{ private PowerOutlet outlet; public PowerAdapter(PowerOutlet outlet) { this.outlet = outlet; } @Override public double transport() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } return outlet.getElectricity() * 0.5; } }

1. 4电源接口

/** * 电源接口 * * @author ALion * @version 2019/1/29 22:45 */ public interface Target { /** * 电流传输转换 * @return 电流 */ double transport(); }

2. Test示例

/** * 适配器模式测试 * * @author ALion * @version 2019/1/29 22:30 */ public class AdapterTest { public static void main(String[] args) { Laptop laptop = new Laptop(); PowerOutlet outlet = new PowerOutlet(); PowerAdapter adapter = new PowerAdapter(outlet); laptop.charge(adapter); } }