角色而不是继承 - 许多未使用的字段可以吗?

时间:2015-07-19 10:58:54

标签: object-oriented-analysis

存在很多情况,例如你在现实生活中有例如用户和管理员。而不是让Admin自己的类继承自User,而只有User和Admin才是一个角色。 (我认为有更好的例子。)但我的问题是,管理员可能有很多其他领域,比如它可以访问的系统列表。看起来如果您选择使用角色,您将拥有包含许多空字段的用户对象,如果该角色设置为Admin,则该字段仅为非null。这是可以的还是比使用角色更好的实现方式? 修改 建议的想法:使角色不是枚举,而是保持角色唯一的字段的类。这听起来合理吗?

1 个答案:

答案 0 :(得分:1)

通常,对象中未使用的字段指向对象分解问题。通常的重构解决方案是将这些字段推送到使用它们的对象中,例如roles,然后将它们作为第一类对象而不仅仅是标识符。