适配器模式
1.设计模式六个原则
- 单一职责
- 里式替换
- 依赖倒置
- 接口隔离
- 迪米特法则
- 开闭原则
2.适配器模式的概念
假设现在你手里有个接口A:
public interface A{
void printA();
}
张三手里有个接口B和实现类BB:
public interface B{
void printB();
}
public class BB implements B{
public void printB(){
//out BB
}
}
现在你想使用张三的接口B中的方法printB,但是在使用的地方只允许你传递接口A类型的对象,此时便可以使用适配器模式
重新创建一个类实现A:
public class AA implements A{
private B b;
public AA(B b){this.b = b}
public void printA(){
b.printB();
}
}
此类中唯一的区别是持有了B类型的对象,当创建AA对象时必须传入B类型的对象,那么在使用AA对象的printA时就会输出BB
2.角色
上例中A接口被称为目标接口,B接口被称为Adaptee,AA类称为Adaptor,即为适配器类,通过AA中持有的B类型对象,可以将B对象中的所有方法都适配到A接口的方法中
这样需要为每个adaptee提供一个适配器类,当项目中的适配器类过多时需要重构项目