1.定义
将一个类的接口转换成客户期望的另一个接口,使原本接口不兼容的类可以一起工作。
2.优点
提高类的可复用性,符合开闭原则。
3.代码示例
(1).继承方式
public class Adaptee {
void adapteeRequest() {
System.out.println("被适配者的方法");
}
}
public interface Target {
void request();
}
public class ConcreteTarget implements Target {
@Override
public void request() {
System.out.println("concreteTarget目标方法");
}
}
public class Adapter extends Adaptee implements Target {
@Override
public void request() {
super.adapteeRequest();
}
}
public class Test {
public static void main(String[] args) {
Target target = new ConcreteTarget();
target.request();
Target adapter = new Adapter();
adapter.request();
}
}
concreteTarget目标方法
被适配者的方法
(2).组合
public class Adaptee {
void adapteeRequest() {
System.out.println("被适配者的方法");
}
}
public interface Target {
void request();
}
public class ConcreteTarget implements Target {
@Override
public void request() {
System.out.println("concreteTarget目标方法");
}
}
public class Adapter implements Target {
Adaptee adaptee = new Adaptee();
@Override
public void request() {
adaptee.adapteeRequest();
}
}
public class Test {
public static void main(String[] args) {
Target target = new ConcreteTarget();
target.request();
Target adapter = new Adapter();
adapter.request();
}
}
concreteTarget目标方法
被适配者的方法