清洁OO解决方案的类结构

时间:2014-11-25 11:30:08

标签: oop

我想知道“最干净”的面向对象的方法是区分具有1个额外属性的对象。

一个例子: 假设你有一个奖项。 这个类有2个子类:individualAward,bandAward。

我想以一种活跃于不到x年的个人和乐队获得新人奖而不是常规奖的方式来区分奖项。

问题: 我在哪里实现newcomer属性? 我是否会制作2个新课程(没有其他功能),IndividualNewcomerAward和bandNewcomerAward?我是否像isNewcomerCategory一样在Award类中添加一个字段?

我不知道OO的解决方案是什么。

2 个答案:

答案 0 :(得分:2)

如果每个奖项都可以成为新人奖项,请将该字段添加到奖项类别中。如果只有部分可以,可以在那里添加,并可能使用isNewcomer方法创建一个接口,并将其添加到相应的奖励类中。 实施可能取决于您使用的语言。

答案 1 :(得分:1)

您当然不希望为每个新属性引入新类,因此我会向父类添加一个属性。或者添加属性activeSince和方法isNewcomer()

相关问题