本文目的在于对比分析Adaptor,Decorator,Facade这三种设计模式的差异,加深对这几种设计模式的理解。
模式 | 说明 |
Adaptor | 把接口A的具体实现转换成对接口B的实现,以实现对B接口调用的客户能使用A提供的功能。 |
Decorator | 封装原来的接口A实现类,动态增加额外的功能,实现对原有实现类功能的扩展。 |
Facade | 为复杂的子系统提供抽象简单的接口,使用方调用接口,而不用关注子系统内部的复杂逻辑。 |
Adaptor 适配器模式
适配器模式使两个不相关的接口一起工作。在真实的工作场景中,会出现一个客户端依赖B接口的实现类,但需要使用A接口的功能满足客户端的需要。适配器模式就能够实现使A,B两个不相关的接口一起工作,把对A接口功能的实现类转化成对B接口功能的实现。
demo的类图如下:
public interface Duck {
public void quack();
}
public interface Goose {
public void cackle();
}
public class WightGoose implements Goose {
@Override
public void cackle() {
System.out.println("cackle");
}
}
public class GooseToDuckAdapter implements Duck {
private Goose goose;
public GooseToDuckAdapter(Goose goose) {
this.goose &#