2011-04-13 52 views
2

假设我有3个类,在这些类中,我有2个通用函数和1个不同的成员(有些相同,有些不同)。
这些类对象是在foreach循环中创建的,并且在一次迭代中只创建一个类对象。什么时候创建泛型和部分类

我在寻找创造一流的更好的方法:

  1. 可以创建然后一个基类驱动子类
  2. 可以创建一个主类,其余部分作为内部类
  3. 可以创建一个抽象类和其余为不同类别
  4. 可以创建3部分类
  5. 可以创建一个通用类

我只想知道更好的方法,以防我可以创建三个部分类或任何泛型类? - 然后请解释。

我使用C#3.0

+0

通用类和部分类是两个完全不同的东西... – BoltClock 2011-04-13 12:13:18

+1

您应该只使用部分类与代码生成器结合使用。一部分是由一些工具生成的,另一部分是你自己写的。 – slfan 2011-04-13 12:14:42

+0

@slfan:我不认为这是部分课程的唯一目的...... – BoltClock 2011-04-13 12:15:18

回答

1

1.可以创建一个基类,然后开车子类

不错的人选。但是,请看下面的3.。如果您有类别EmployeeManager其中Manager来自Employee您应该使用此解决方案。 Employee不是抽象的。

2.可以创建一个主类,其余部分作为内部类

坏的候选人。内部类只是范围类的一种方法。大多数时候你应该避免公开内部类,然后内部类简单地成为你的类的实现细节。

3.可以创建一个抽象类和休息为不同类别

不错的人选。与1相同,除非您的基类不能实例化。如果你的基类是“不完整的”,需要派生完全指定,你应该选择这个解决方案。如果您的课程是Employee,SalariedEmployeeExternalEmployee其中Employee是基类,则此解决方案是正确的。除非您知道员工是薪水或外部人员,否则员工的描述不正确。

4.可以创建3部分类

为候选者。部分类是将类的源代码拆分为多个源文件的一种方法。

5.可以创建一个泛型类

可能是一个坏的候选人。泛型类用于创建一个单一的(泛型)类,它使用不同的类型参数实现相同的行为。你描述了你的类有不同的方法,而泛型类根据类型参数没有“不同的方法”。

+0

我将继续抽象类,并将使我需要在子类中实现的功能作为抽象。 – Nits 2011-04-18 09:25:52

0

部分类 - 允许您生成一个类,该类在同一程序集内的多个文件中实现。正如slfan指出的那样,当部分类被生成并且部分被手写时,这是非常有用的。

通用类 - 允许您生成一个一个类,它具有一个实现特定方式的单个实现,但不关心它的工作原理。这是一个完美的例子。 List不关心列表中的实际内容,但它知道如何获取第一个元素或删除第三个元素。

抽象类 - 允许您生成多个子类的单个抽象类。抽象类依赖于子类来实现一些方法。这与泛型类不同,因为抽象类知道需要发生的事情,但它不知道子类知道什么是实际的东西。

相关问题