结构型模式之适配器模式

 
一.定义
  适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。
  
二、模式结构成员构成

• Target:目标抽象类
• Adapter:适配器类
• Adaptee:适配者类
• Client:客户类

 
三.代码示例
 1 /**
 2  * Target
 3  * 目标抽象类
 4  */
 5 public interface FiveVolt {
 6     public int getVolt5();
 7 }
 8 
 9 /**
10  * Adaptee
11  * 适配者类
12  */
13 public class Volt220 {
14     public int getVolt220() {
15         return 220;
16     }
17 }
18 
19 /**
20  * Adapter(1)
21  * 类适配器
22  */
23 public class VoltClassAdapter extends Volt220 implements FiveVolt {
24     @Override
25     public int getVolt5() {
26         return 5;
27     }
28 }
29 
30 /**
31  * Adapter(2)
32  * 对象适配器
33  */
34 public class VoltObjectAdapter implements FiveVolt {
35     Volt220 volt220;
36 
37     public VoltObjectAdapter(Volt220 volt220) {
38         this.volt220 = volt220;
39     }
40 
41     @Override
42     public int getVolt5() {
43         return 5;
44     }
45 
46     public int getVolt220() {
47         return volt220.getVolt220();
48     }
49 }
View Code
 
四.优点和缺点分析
优点:
>将目标类和适配者类解耦,通过引入一个适配器类来重用现有的适配者类,而无须修改原有代码。完全符合“开闭原则”。

缺点:
>增加程序实现过程的复杂度
 
五.应用场景

在以下情况下可以使用适配器模式:

>系统需要使用现有的类,而这些类的接口不符合系统的需要。

>想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。

原文地址:https://www.cnblogs.com/756623607-zhang/p/9216131.html