阅读371 返回首页    go 阿里云 go 技术社区[云栖]


C++ Adaptor 设计模式

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对象,也能达到效果。

最后更新:2017-04-02 06:51:36

  上一篇:go 大型项目使用Automake/Autoconf完成编译配置(2)——步步为营
  下一篇:go Java或web中解决所有路径问题