例子来源:《设计模式之禅》——第19章 适配器模式
Target目标角色;Adaptee源角色;Adapter适配器角色。
Target
public interface Target {
void request();
}
Adaptee
public class Adaptee {
public void doSomething(){
System.out.println("I'm kind of busy, leave me alone,please");
}
}
Adapter
public class Adapter extends Adaptee implements Target {
@Override
public void request() {
super.doSomething();
}
}
ConcreteTarget
public class ConcreteTarget implements Target {
@Override
public void request() {
System.out.println("if you need any help,please call me");
}
}
Client
public class Client {
public static void main(String[] args) {
// 原有的业务逻辑
Target target = new ConcreteTarget();
target.request();
// 现在增加了适配器角色后的业务逻辑
Target target2 = new Adapter();
target2.request();
}
}
适配器模式的优点
- 适配器模式可以让两个没有任何关系的类在一起运行,只要适配器这个角色能够搞定它们就可以了;
- 增加了类的透明性
- 提高了类的复用度
- 灵活性非常好