适配器模式
定义
适配器模式将一个类的接口, 转换成客户期望的另一个接口. 适配器让原本不兼容的类可以合作无间.
案例
背景: 有鸭子接口,火鸡接口,先将火鸡类型适配成鸭子类型
TurkeyAdapter适配器实现需要的类型(Duck),并持有适配的类型(Turkey)
public class TurkeyAdapter implements Duck {
Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
@Override
public void quack() {
turkey.gobble();
}
@Override
public void fly() {
turkey.fly();
}
}
测试
@Test
public void testAdapter() {
TurkeyAdapter adapter = new TurkeyAdapter(new WildTurkey());
adapter.quack();
adapter.fly();
}
结果:
咯咯叫
火鸡飞
外观模式
定义
外观模式提供了一个统一的接口, 用来访问子系统中的一群接口, 外观定义了一个高层接口, 让子系统更容易使用
**
- 外观不仅简化了接口, 也将客户从组件的子系统中解耦
- 外观和适配器可以包装许多类, 但是外观的意图是简化接口, 而适配器的意图是将接口转换成不同的接口
设计原则:
- 最少知道原则: 之和你的密友谈话