如何将多重继承转换为非分层组合?

时间:2014-11-07 17:35:40

标签: dependencies multiple-inheritance composite

我最近不得不开始使用一种第一次没有多重继承的语言,而且我在使用复合设计模式合成对象时遇到了麻烦。因此,使用字母表示对象和箭头作为依赖关系,我只了解如何将以下关系转换为复合:

    a   e
    ^   ^
b < d < h > f
    v   v    
    c   g

合成是我在这种情况下一直做的事情。当依赖关系颠倒过来时会出现问题:

    a   e
    v   v
b > d > h < f
    ^   ^    
    c   g

过去我使用了虚拟多重继承,我无法弄清楚如何使用合成以一种体面的方式封装它:依赖关系不断涌入调用代码。并且甚至没有进入这样的情况:依赖关系不能形成有向无环图并形成更多的松散网络,我总是发现多重继承封装得很好。

当我试图查看这一切时,我所能找到的只是所提到的第一种情况的例子,并引用了#34; dreaded&#34;继承钻石,这有点令人困惑,因为据我所知,获取钻石似乎是具有多重继承的全部要点。

0 个答案:

没有答案