|
|
1
4
我认为阻碍面向对象编程项目进展的一个主要绊脚石是一个常见的误解,即继承是关键 只有
与 Moose roles 用它们“做”的事情的组合来组合类,而不必创建复杂的(在本例中是不合适的)继承层次结构。 如果你不想要像驼鹿这样笨重的东西,还有更简单的选择,比如 mixin . 你可能感兴趣的另一个选择是基于原型的合成,比如 Class::Prototyped |
|
|
2
3
和 .
其中Frobnicator、thingumy和Poddlewhick都是在CPU对象上操作的类。
CPU2和CPU1一样,但没有冰箱。
这种方法会导致大量重复的代码。您可以通过以下方式创建一些伪角色类型代码注入
只有当你不能仅仅用驼鹿来扮演角色的时候,你才能这么做。他们工作得更好,少了麻烦和陈词滥调。 |
|
|
3
2
你有几个选择。不过,我不认为让CPU-Version-2从CPU-Version-1派生出来就是答案。
然而,更好的方法可能是使用组合。在CPU-Version-2对象中保留一个CPU-Version-1实例。对于任何常见方法,您的CPU-Version-2对象都可以简单地委托给CPU-Version-1中的等效方法。您可以使用CPU-Version-2自己的方法来增强这种行为,以满足需求。 例如(伪代码):
|
|
|
4
1
或者,既然你说你不能改变基类(所以,走不可重用和不可维护的路线),你就可以把这些东西混进去
没有看到实际的课程和你做了什么,我只能给你一个很好的猜测。 |
|
Fernando Chu · 一个变量有多个可能的类?[关闭] 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
Rishab Negi · 这个关键字在抽象类中是如何工作的 1 年前 |
|
|
dEmigOd · 类层次结构中的运算符重载解析 1 年前 |
|
|
TableTopRug · 如何从Kotlin中的密封类继承? 1 年前 |
|
|
hasdrubal · 抽象基类函数指针python 2 年前 |
|
|
Josh · 通过反思访问孩子的财产 2 年前 |