适配器模式代码示例

例子来源:《设计模式之禅》——第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();
    }
}

适配器模式的优点

  • 适配器模式可以让两个没有任何关系的类在一起运行,只要适配器这个角色能够搞定它们就可以了;
  • 增加了类的透明性
  • 提高了类的复用度
  • 灵活性非常好