2.3 结构型模式
2.3.1 适配器模式
定义:适配器模式就是把一个类的接口转化为用户期待的另一个接口,从而使得原本因接口不一致无法一起工作的两个类能够一起工作。可以分为类结构型模式和对象结构型模式
应用场景:
- 系统需要使用现有的类,但此类的接口不符合系统的规范;
- 想建立一个可以重复使用的类,使它能够和一些彼此之间没有多大关系的类、以及一些在将来可能引入的类协同工作,而这些类不一定有一致接口;
- 通过接口转换,将一个类插入另一个类系中。
优点
- 使得任意两个没有关联的类一起工作;
- 提高代码的复用性;
- 增加了类的透明度;
- 灵活性好。
缺点
- 过多地使用适配器模式会使系统内部显得非常凌乱,不易于整体把握;
- 由于Java只能继承一个类,因此最多只能有一个适配者类。
适配器模式的实现
类的适配器模式
该模式涉及到三个角色:
- 目标(Target)角色:这就是所期待得到的接口,
- 源(Adaptee)角色:现在需要适配的接口。
- 适配器(Adapter)角色:适配器类是本模式的核心,负责将源接口转化为目标接口。显然这一角色不能是接口,而必须是具体的类。
引用博客园上一篇不错的文章的图来形象展示适配器模式的结构
代码实现:
/**
* 源接口,期待得到的接口
**/
public interface Target{
public void sampleOperation1();
public void sampleOperation2();
}
/**
* 需要被适配的接口
**/
public class Adaptee{
public void sampleOperation1(){};
}
/**
*
**/
public class Adaptor extends Adaptee implements Target{
public void sampleOperation1(){
}
}
// TO BE CONTINUED