适配器模式
简单概念:
就是为了解决接口不一致的问题。两个软件模块之间往往也需要通过一个适配器类Adapter进行“适配”,这种模式就叫做适配器模式。
分类:
- 类适配器(继承复用):客户类有一个规范的接口,此时的适配器类是作为功能类的一个子功能,也就是一个子类,然后直接实现这个接口,直接用功能类实现了客户类的需求。
- 对象适配器(组合复用):客户类没有提供接口,此时适配器类作为客户类的子类,并在其中实例化一个功能类的对象,并调用此对象中的方法进行设配操作。
PS:这块当时不是很理解,一直分不清类适配器和对象适配器的区别。
感谢此篇博客的启示:类适配器与对象适配器的区别
类图:
类适配器:
类适配器的设计要点就是写一个Target接口声明所有需要的方法Operation1和Operation2;写一个Adapter类继承Adaptee类,并且实现接口Target
图中的Operation1已结被自动继承了,所以只需要在Adapter中实现Operation2即可,因此,在类Adapter类中不必再声明方法Operation1。
Java语言中适配器模式的各组成说明:
- Target:即所期望的java接口
- Adaptee:被继承的java类
- Adapter:将Adaptee类转化到增加了新功能的Target接口
对象适配器:
对象适配器模式的设计要点是在接口Target类中声明方法Operation1和Operation2,在实现Operation1时,在其代码中实现对Adaptee和Operation1的调用