适配器模式
什么是适配器模式
适配器模式,将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作。
类图
代码
利用Enumeration来适配Iterator,外部只需要调用这个适配器,即可以像调用Iterator那样,外部调用感知不到适配器内部是怎么工作的。
public class IteratorEnumeration implements Enumeration<Object> {
Iterator<?> iterator;
public IteratorEnumeration(Iterator<?> iterator) {
this.iterator = iterator;
}
@Override
public boolean hasMoreElements() {
return iterator.hasNext();
}
@Override
public Object nextElement() {
return iterator.next();
}
}
外观模式
什么是外观模式
外观模式为子系统中的一组接口,提供了一个统一的接口。外观定义了一个更高级别的接口,使得子系统更容易使用。
类图
代码
这块的代码比较简单且臃肿,就不列举了。简单来说就是为子系统内的众多类A、B、C、D,包装了另外一个类E,该类拥有其他类的引用。然后该类会暴漏出一个简单易用的接口,该接口做了子系统众多类所做的事情。
涉及到的设计原则
最少知识原则:只和密友谈话,减少对象之间的交互。