我正在设计一个包含组织层次管理的系统。系统中有四个角色,即用户、管理员、经理和采购主管:

我试图让每个组织的管理员通过使用系统中预定义的任务和权限创建新的角色来创建自己的层次结构。
例如,管理员可能会在用户和采购主管之间添加一个名为“市场调研主管”的用户。管理员将分配这个新的用户任务,比如批准在系统中预定义的购买请求。
我正试图为这个系统准备一个类图,我不知道如何表示要创建的新角色。任何帮助都是非常感谢的。提前谢谢你。
发布于 2020-02-09 12:55:21
您面临的问题是合并了用户的概念和角色的概念。因此,如果同一个人在几个任务中担任采购主管,该人将有几个不相关的对象。
向前迈出的第一步将是合理地将关切问题分开,例如:

正如您所看到的,我将您最初的“用户”重命名为"Contributor“,以避免在特定角色和更一般的概念之间的混淆(例如,您有addUser(),但没有addManager()或addHeadOfProcurement())。
这种设计增加了灵活性,但是您的应用程序将有机会强制执行一些约束(例如,如果审计员希望您执行某些职责分离)。
尽管如此,这种设计仍然依赖于预定义的角色。管理员不能创建新角色,而只能重用类模型中可用的角色。
如果您需要更高级别的灵活性,以便您的管理员可以创建新角色,您可以:
当然,这种额外的灵活性将增加另一层复杂性。
https://softwareengineering.stackexchange.com/questions/404895
复制相似问题