我正在创建一个GUI,其中包含由不同节点类型和连接组成的图形,以及可以从节点创建的图。
我的inheritance tree看起来像这样:
如您所见,所有图形节点和图都是可移动的。图和一些图节点可以调整大小。现在,我想让用户能够将所有图形节点组合在一起,在另一个名为Network
的节点类型中。
所以我想为所有非Plot类添加一个名为restrict
的方法,尽管它们有不同的基类。
我听说过的一种方法是use mixins,但他们觉得有点矫枉过正。是否有更简单的方法将方法添加到从不同基类继承的类?在这种情况下,如何牢记“继承的构成性”原则?
我认为我不应该只将restrict
添加到Component
,因为这会为Plots
创建一个永远无法使用的无用方法,这感觉就像是一个糟糕的代码味道。
我知道我可以使用Interfaces进行多重继承,但是Interfaces不会自动使用引用实现,因此我必须将一堆super
调用复制到每个方法定义中。这感觉就像很多代码重复。如果实现类没有给出实现,有没有办法从接口自动使用引用实现?
答案 0 :(得分:2)
我想发表评论,询问有关您情况的更多信息,以便我可以更好地准备答案,但我的声誉数量不允许(鸡和鸡蛋情景阻止我构建更好的答案有更多的声誉,发表评论...)所以这是我现在最好的答案,我可以更新。
直觉我认为你的问题&解决方案非常概念化,一旦解决了概念问题,解决方案就不需要任何花哨的编码。
如果我对你正在做的事情有一个更好的“现实世界”的想法,我相信我可以帮助你想出一些代码设计来实现它,但目前它是任意的“节点”等。例如,你所谈论的这种“分组”的本质是什么?
不知道其他什么,我有一些建议;