适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类合作无间。
本质很简单,用适配器类实现目标接口,然后在实现中用委托调用被适配者的子类的方法去实现目标接口的方法
代码:
public interface Target {
public void request();
}
public interface Adaptee {
public void specificRequest();
}
public class Adapter implements Target {
private Adaptee adaptee;
@Override
public void request() {
adaptee.specificRequest();
}
}
设计原理7:最少知识原则:只和你的密友谈话
如何理解:不要让太多的类耦合在一起,免得修改时候影响太多类
如何遵守:只调用在下面范围内的方法:
1、该对象本身
2、被当做方法的参数而传递进来的对象
3、此方法所创建或实例化的任何对象
4、对象的任何组件(has-a关系)
外观模式:提供了一个统一的接口,用于访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用
本质也十分简单,其实就是在多个类的上面再加一层,并封装它们的若干个方法到新类的一个方法里,这样做的目的只是为了让接口看去更简单,方便调用
比较装饰者、适配器、外观:
装饰者:不改变接口,但是加入责任(新方法也可以加入)
适配器:将一个接口转成另一个接口
外观:让接口更简单