閱讀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中解決所有路徑問題