Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependencies 如何将多重继承转换为非继承人结构组合?_Dependencies_Multiple Inheritance_Composite - Fatal编程技术网

Dependencies 如何将多重继承转换为非继承人结构组合?

Dependencies 如何将多重继承转换为非继承人结构组合?,dependencies,multiple-inheritance,composite,Dependencies,Multiple Inheritance,Composite,我最近第一次不得不开始使用一种没有多重继承的语言,我在使用复合设计模式合成对象时遇到了困难。因此,使用字母将对象和箭头表示为依赖项,我只了解如何将以下关系转换为复合关系: a e ^ ^ b < d < h > f v v c g ae ^ ^ bd>h

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

    a   e
    ^   ^
b < d < h > f
    v   v    
    c   g
ae
^   ^
bf
v v
CG
在那种情况下,我总是做合成。当依赖关系颠倒时,问题就会出现:

    a   e
    v   v
b > d > h < f
    ^   ^    
    c   g
ae
v v
b>d>h
在过去,我使用虚拟多重继承来实现这一点,但我不知道如何使用合成以一种合适的方式来封装它:依赖项不断溢出到调用代码中。这甚至不包括依赖项不能形成有向无环图和松散网络的情况,我一直发现多重继承封装得很好

当我试图查找这篇文章时,我所能找到的只是第一种情况的例子,以及对“可怕的”继承钻石的引用,这有点令人困惑,因为就我所知,获得钻石似乎是拥有多重继承的全部意义