【发布时间】:2014-01-11 15:34:52
【问题描述】:
关于单一职责原则,以及关于过大类的无处不在的警告,这一切如何适用于实体类?就其本质而言,实体难道不应该封装有关一个实体的所有内容吗?这不是他们的“单一责任”吗?
否则,假设您的实体类变得“太大”,如某些人所说,您将如何在不破坏实体应提供的自然封装的情况下实际分解它?如果你有一个 Person 类,只有名字、年龄和最喜欢的食物,那么显然它们都应该是 Person 的属性。但是,如果您需要添加 20 多个类似的属性,例如眼睛颜色、isRightHanded、ReligionOfChoice 等,该怎么办?只是因为他们很多,这是否意味着他们需要被分成不同的班级?为“Properties1To5”和“Properties6To10”设置一个单独的类,然后用它们组成 Person 类,这似乎很愚蠢?
或者直接在 Person 类中保留 100 个属性(理论上可能彼此无关,除了它们属于 Person 的事实)更正确,因为 Person 类的唯一职责是封装关于一个人的一切?
【问题讨论】:
标签: oop entity single-responsibility-principle