單重繼承缺陷的臨時解決方法

piny發表於2021-09-09

當我在設計一個Composition SDK的時候,我遇到了一個由單重繼承引起的問題。請先看一下類圖。

圖片描述
 

介面組合思路與微軟的CAB類似。遇到的問題就是:1 在圖中存在繼承了類B的類A需要繼承類C的功能,但是單重繼承又不能使A繼承C,如何解決呢? 2 具體的應用會對SmartPart,PulledSmartPart,PushedSmartPart,MasterSmartPart,PulledMasterSmartPart,PushedMasterSmartPart進行相應的繼承擴充套件,如何能夠靈活處理呢?

目前,我採用的是組合的方式來實現,即按介面層次實現一組透過能,按必須繼承的類完成一組功能,將兩組功能組合起來。

圖片描述
 

不過,每一個需要繼承系統類的類,如果它實現ISmartPart/IWorkspace介面,都必須重新使用Composor實現一次,我暫時無法找到更好的解決方案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3034/viewspace-2800075/,如需轉載,請註明出處,否則將追究法律責任。

相關文章