适配器模式 Adapter:将某个类的接口转换为另一个接口。
例如:原有类只包含方法 f1()
,目标接口需要提供两个方法 f1()
与 f2()
。
class Source {
public void f1() {
System.out.println("f1");
}
}
interface Target {
void f1();
void f2();
}
类的适配器 - 通过继承
适配器 Adapter
继承原有类 Source
,实现目标接口 Target
。
类的适配器 - 通过继承
class Adapter1 extends Source implements Target {
public void f2() {
System.out.println("f2");
}
}
对象的适配器 - 通过组合
适配器 Adapter
实现目标接口 Target
,同时维护原有类 Source
的引用。
对象的适配器 - 通过组合
class Adapter2 implements Target {
private Source source;
public Adapter2(Source source) {
this.source = source;
}
public void f1() {
source.f1();
}
public void f2() {
System.out.println("f2");
}
}