在过去的几个月里,我经常遇到这个问题,在此期间我一直在构建这个系统.场景是这样的:我有这种对象,本质上是一个其他对象的列表,但有一些特定于其性质的其他属性.例如:
课程Tests
:
包含许多Test
对象
有属性:
DefaultTimeouts
DefaultNumberOfTries
我应该拥有这个类的子类,List
还是应该继承它Object
,只需将列表作为属性放在其他字段旁边?
我知道这可能有点主观,个人品味可能在这里发挥作用,但我全心全意地想知道你对此的看法.
与大多数答案相反,在大多数情况下,我不会从List继承.我发现从类继承到重用功能通常会在以后引起问题.
我通常只有一个List(或IList)类型的属性,它返回对列表的引用.通常你只需要一个获得房产.您可以通过选择使用.AsReadOnly()返回列表的只读版本或仅将列表公开为IEnumerable来控制对列表的访问.
在我希望测试成为列表的情况下,我通常实现IList并为IList的实际实现调用内部List字段.这是一个更多的工作,并导致一些更多的代码要维护,但我发现这比继承List更好的可维护性只是为了它的实现.
List
如果它看起来像List
我称之为TestCollection.