设计模式之适配器模式
1.定义/概念
复制代码
1适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。是作为两个不兼容的接口之间的桥梁。这种类型的设计属于结构型模式,它结合了两个独立接口的功能。
2.适配器实现方式
共有两类适配器模式:
(1)对象适配器模式
-- 在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。
对象适配器”通过组合除了满足“用户期待接口”还降低了代码间的不良耦合。在工作中推荐使用“对象适配”。下面是对象适配器的UML图:
(2)类适配器模式
-- 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。
当客户在接口中定义了他期望的行为时,我们就可以应用适配器模式,提供一个实现该接口的类,并且扩展已有的类,通过创建子类来实现适配。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19package com.gult.demo11; /** * 适配者模式----类适配器 * 手机需要5v电压 * * @author qichunlin * */ public class Client { public static void main(String[] args) { System.out.println("=====类适配器====="); Mobile m = new Mobile(); //VoltageAdapter va = new VoltageAdapter(); m.charging(new VoltageAdapter()); } }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20package com.gult.demo11; /** * 手机需要5v电压 * * @author qichunlin * */ public class Mobile { //充电方法 public void charging(Voltage5 voltage5) { if(voltage5.output5V() == 5) { System.out.println("电压刚刚好5v,开始充电"); }else if (voltage5.output5V()>5) { System.out.println("电压超过5v,无法进行充电"); }else { System.out.println("电压过低!!"); } } }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16package com.gult.demo11; /** * src类 * 我们有的是220v电压 * * @author qichunlin * */ public class Voltage220 { public int output220V() { int src = 220; System.out.println("我是"+src+"V"); return src; } }
复制代码
1
2
3
4
5
6
7
8
9
10
11package com.gult.demo11; /** * dst接口:客户需要的5v电压 * 需求类 * @author qichunlin * */ public interface Voltage5 { int output5V(); }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21package com.gult.demo11; /** * 完成220v----5v的转变 * 通过继承src类,实现dst类接口,完成src->dst的适配 * * @author qichunlin * */ public class VoltageAdapter extends Voltage220 implements Voltage5{ @Override public int output5V() { int src = output220V(); System.out.println("适配器开始适配电压"); int dst = src / 47; System.out.println("适配完成后输出电压"+dst); return dst; } }
4.适配器模式(Adapter Pattern)的适用场景:
系统需要一些特定的接口、对象作为参数输入,而我们所拥有的对象,无法满足这些规定。适配器的作用就是,传入我们所拥有的类(例如220V的电),产生我们所需要的类(5V/2A的电)。
转载于:https://www.cnblogs.com/qichunlin/p/8643418.html
最后
以上就是大意钢笔最近收集整理的关于2018.3.25 设计模式之适配器模式详解+例子的全部内容,更多相关2018.3.25内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复