C++设计模式之适配器模式(adapter)(结构型)
一、结构型模式概述 结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。 结构型模式可以分为 类结构型模式 和 对象结构型模式 : • 类结构型模式 关心 类的组合 ,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在 继承关系和实现 关系。 • 对象结构型模式 关心 类与对象的组合 ,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系,因此大部分结构型模式都是对象结构型模式。 类适配器和对象适配器区别 类适配器的重点在于类,是通过构造一个继承Adaptee类来实现适配器的功能; 对象适配器的重点在于对象,是通过在直接包含Adaptee类来实现的,当需要调用特殊功能的时候直接使用Adapter中包含的那个Adaptee对象来调用特殊功能的方法即可。 注意事项: 类适配器使用多重继承对一个接口与另一个接口进行匹配。对象适配器依赖于对象组合。类适配器和对象适配器有不同的权衡。 类适配器 :A、用一个具体的Adapter类对Adaptee和Target进行匹配。结果是当我们想要匹配一个类以及所有它的子类时,类Adapter将不能胜任工作;B