|
|
1
1
我认为这取决于你的对象的类祖先,每个对象之间逻辑上的真正区别,以及将来可能需要在其他类上做这件事。 在我看来,如果应用于多个类的功能基本相同,并且可以应用于将来的类,那么实用程序类是一个很好的方法。 另一方面,如果功能不同,最终在实用程序类中使用一个大型switch/case语句来适应不同的对象类型,那么您可能希望在对象本身中实现它。 |
|
|
2
0
您有两种方法来解决您的问题:一种是使用通用编程(水平多态性),或者使用更传统的基于垂直层次结构的实现来攻击它。 您的决策必须基于各种数据类型之间共享的相似性类型。在这种情况下,我们可以定义一个完整的和正交的契约,可以在任何类型中操作,然后我们可以很容易地决定使用泛型。 例如,列表、字典和System.Collections.Generic名称空间下的所有类的情况就是这样,这些类最终替换了.NET早期版本对应的非常规对应项。 另一方面,同样从.NET世界中,我们可以用它作为垂直层次结构的一个例子,UserControl类派生自ContainerControl,并作为其他控件的基础,这些控件使用其虚拟方法专门化IT行为… 在大多数情况下,尽管类层次结构的设计涉及许多判断调用,但这些调用并不总是确定地定义,因为它们更多地依赖于作为开发人员的经验和才能,而不是在一个具体模型中,该模型可以在所有可能的情况下全面应用。… |
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 1 年前 |