0

很少有子类扩展我的抽象父类。子类几乎没有相同的属性,例如日期。所以我的问题是我应该在我的抽象类中还是在每个子类中声明这些属性(日期)的设置器和获取器?在一个子类中,它是另一个“日期”中的“发布日期”,所以我应该将它全部“投射”到日期吗?

4

2 回答 2

2

要看。

许多人建议使用组合(即:Has a)而不是继承(即:Is a)。大多数时候,这取决于您想要实现的目标。两种方法各有利弊。

如果您想将这些属性放到基类中,那么所有类都具有这些属性,但您是说并非所有类都具有这些属性。作为一个好的设计,如果你没有完全填充一个对象,也就是说,你将一些字段留空或为空,那是不好的。您的对象应该被完全填充。

所以你可以做的是,你可以将属性包装成行为(另一个对象)并将它们委托给想要使用它们的类。

使用你的直觉,无论哪种感觉正确,并简化你的生活。

于 2012-09-04T20:57:56.493 回答
1

如果您说所有子类都出于相同目的使用相同的字段,那么请务必将其添加到父类中并为自己节省一些重复。如果您说子类都出于不同目的使用“日期”字段(您提到它们被称为不同的名称),那么您可能应该在子类本身中声明它并且不要使用超类字段超过1 目的(否则从长远来看这将非常令人困惑)。

于 2012-09-04T20:55:48.313 回答