Adapter模式
适配器模式可以将一个类的接口和另一个类的接口匹配起来,而无须修改原来的适配者接口和抽象目标类接口。适配器模式定义如下:
适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。

实例
它常应用于适配第三方库的接口,从而实现不改动现在代码的情况下,实现一些算法或实现的转移。如本实例中,我们用Adapter模式重构XML Document的实现。
视频实例的源码和每一步的commit可以参考这个分支的记录
优缺点
主要优点
- 可以把不同的实现适配到现有的系统中,而无须修改原来代码,增加透明性和复用性
- 可以适配子类,避免继承
主要缺点
- 需要完全了解适配者的实现和现有系统的实现的对应关系,当对应关系比较繁杂时,会使代码难以理解
- 现在系统的现有接口不一定能完全适配适配者的实现,适配前可能需要做必要的重构,并且有可能会丧失一些有用的方法。如本例子中的
ElementAdapter.children就没有在适配器中实现。