2015-07-19 50 views
0

很多情况下,例如你有现实生活中的用户和管理员。而不是让管理员自己的类从用户继承,你只有用户和管理员是一个角色。 (我认为有更好的例子。)但我的问题是,一个管理员可能有很多其他领域,比如它可以访问的系统列表。看起来如果您选择使用角色,您将拥有许多空字段的用户对象,如果该角色设置为Admin,则这些空字段仅为非空值。这是好的还是比使用角色有更好的实现方式? 编辑: 提出了一个想法:使角色不是一个枚举,而是一个持有该角色独特的字段的类。这听起来合理吗?角色而不是继承 - 有很多未使用的领域好吗?

回答

1

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