2019独角兽企业重金招聘Python工程师标准>>>
1. 认识适配器模式
1. 定义:将一个类的接口转换成客户希望的另一种接口,适配器模式可以使因为接口不兼容而无法共同工作的类可以一起工作。
2. 结构组成:
- 客户应用程序Cilent:调用自己需要的接口Target
- Target:定义客户端所需要的接口
- Adaptee:已经存在的接口,但与客户端需要的接口不一致,需要进行适配,可以是接口、抽象类或具体的类,接口是为了获取更好的扩展性
- Adapter:适配器,将Adaptee适配称为客户端需要的接口
- AdapteeImpl:Adaptee的具体实现,如果Adaptee是一个具体的类,则不需要该部分
3. 参考代码实现:
/*** @ClassName:Target* @Description:定义客户程序所需要的接口*/
public interface Target {public void target();
}/*** @ClassName:Adaptee* @Description:已存在的接口,需要被适配器进行适配*/
public interface Adaptee {/*** @Title:test* @Description:已经实现的方法,该方法将被进行适配*/public void test();
}
//Adaptee 的实现类
public class AdapteeImpl implements Adaptee{public void test(){System.out.println("具体功能实现");}
}
/*** @ClassName:Adapter* @Description:适配器类,*/
public class Adapter implements Target{//持有需要被适配的接口的实例对象private Adaptee a;public Adapter(Adaptee a){this.a=a;}@Overridepublic void target() {a.test();}}public class Client {public static void main(String[] args) {Adaptee a=new AdapteeImpl();Target t=new Adapter(a);t.target();}
}
2. 理解适配器模式
1. 作用:用来复用已有的功能代码,而不是实现新的接口
2. 适配器实现:常见的适配器是一个类,适配器类会实现Target接口,然后将需要被适配的Adaptee对象作为适配器的成员变量。
3. 优缺点:
- 更好的复用性
- 更好的扩展性
- 适配器过多,会让系统变得变得零散
4. 本质:转换匹配,复用功能代码