C++ Adaptor 设计模式
我在《QtDBus编程详解(二)》中讲到过。处于安全和接口方面的考虑,普通Qt对象Object无法和Linux的DBus通信,为了使Object能和Linux的DBus通信,需要使用一个适配器Adaptor,其实这就是Adaptor 设计模式最常用的方法。
Adaptor 设计模式使用场景:Class A 需要跟 Class B 交互,但是 Class A 和 Class B是毫无任何关系的两个类,不能直接交互,为了达到代码和第三方接口的重用的目的,我们需要一个Adaptor来作为一个纽带,使得Class A能和Class B交互。
Adaptor设计模式分类:
类模式:
类继承模式的核心部分是Adaptor适配器类private 继承 Adaptee,这种继承方式叫做实现继承。所谓实现继承是指继承了父类的实现,而且无法向外部提供该实现,只能在子类内部使用,因为继承方式是private。相对应的另一种public继承方式叫做接口继承。所谓接口继承指的是子类继承了父类的接口,而且可以对外提供该接口。类继承使得Target和Adaptee有了关联。
对象模式:
对象模式是通过采用组合方式,在Adaptor类不引用Adaptee对象,也能达到效果。