|
|
1
5
我认为您应该实现接口,以便能够执行 有一个 关系(我用C#做这件事):
您可以在对象中实现这一点:
|
|
|
2
3
这可以通过使用多重继承来实现。在特定情况下(C++),可以使用纯虚拟类作为接口。这允许您拥有多重继承,而不会产生范围/歧义问题。例子:
现在人和车都是“a”损坏,也就是说,他们实现了损坏接口。使用纯虚拟类(使它们类似于接口)是关键,应该经常使用。它将未来的变化与改变整个系统隔离开来。更多信息,请阅读开闭原理。 |
|
|
3
1
我同意Jon的观点,但假设您仍然需要一个单独的伤害计数器类,您可以:
然后,每个可损坏类都需要提供自己的损坏计数器()成员函数。这样做的缺点是,它会为每个可损坏的类创建一个vtable。您可以改为使用:
但很多人都是这样 |
|
|
4
0
有时候,为了现实而放弃理想是值得的。如果“做对了”而没有真正的好处会导致一个巨大的问题,那么我会做错。话虽如此,我经常认为花时间把它做好是值得的,因为不必要的多重继承增加了复杂性,而且 可以
如果你想走模板路径(假设C++或类似的),你可以用Mixin来做,但是如果做得不好,它会很快变丑。 |
|
|
5
0
这个问题实在令人困惑:/ 你的粗体问题非常开放,答案是“视情况而定”,但你的例子并没有给出很多关于你提问的背景的信息。这些台词让我困惑;
怎么走?集合是否由函数处理?另一节课?通过数据上的虚拟函数?
“一模一样”的理想和多态性是完全不相关的。多态性如何使其易于实现? |
|
|
6
0
将伤害计数器作为属性不允许他将具有伤害计数器的不同对象放入集合中。例如,一个人和一辆车可能都有损坏计数器,但您不能有损坏计数器
|
|
|
7
0
通常,当我们谈论“是”时,有一个“是”和“是”,我们谈论的是继承和组合。
见此: http://www.artima.com/designtechniques/compoinh.html
Derek 是 |
|
|
8
0
从长远来看,“正确操作”将带来好处,如果只是因为以后维护系统的人会发现,如果一开始就正确操作,就更容易理解。 根据语言的不同,您可以选择多重继承,但通常简单的接口最有意义。我所说的“简单”是指制作一个不太复杂的界面。最好有很多简单的接口和几个单片接口。当然,总是有一个折衷,太多的接口可能会导致被“遗忘”的接口。。。 |
|
|
9
0
@安德鲁
然后,您需要一种动态语言,或者需要它们从公共父类(或接口)扩展。例如。:
那么,你可以请客了
|
|
|
10
0
多态性 不需要继承 |
|
|
simply lemon · python上链表的添加方法 2 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 2 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 2 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 2 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 2 年前 |