23种设计模式--适配器模式
结构型设计模式的一种
【DP】定义
将一个类的接口转换成客户希望的另外的接口,该模式使得原本接口不兼容而不能一起工作的那些类可以一起工作。
使用场景
- 需要使用一个类的功能,但是该类的接口不符合使用场合要求的接口,可定制适配器;
- 有一个接口定义的行为过多,则可以定义一个缺省适配器,让子类选择性的覆盖适配器的方法,多为定义为抽象类。
类图
举例
想要对外暴露的接口如下:1
2
3public interface IPrint {
void print(); // 无组织权限的打印功能
}
但是已有的功能是:1
2
3public class PrintClass {
void print(String pk_org); // 有权限的打印功能
}
为了适配已有的打印类,需要增加适配器如下:1
2
3
4
5
6
7
8
9
10
11public class Adaptor implements IPrint {
private PrintClass printClass; // 被适配的类
public void print() {
String[] pks = getAllOrgs(); // 获取所有组织
for (String pk : pks) {
printClass.print(pk);
}
}
}
注意事项
- 适配器的第一种使用场景最好是在设计初避免,尽量减少适配器的使用,大家使用同一套接口是最好的。