gpt4 book ai didi

java - 添加多种用户类型,每个用户都有不同的功能

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:21 26 4
gpt4 key购买 nike

我有一个应用程序,其中有 45 种不同的用户,每个用户都有一组可用的功能。我们使用枚举来识别每组用户,并且每个功能都在客户端进行硬编码,这使得更改非常困难。

e.g : USER_KABO,USER HAEB,USER_IOQW ... //Method getFunctionality is hardcoded for every user.-(ArrayList)getFunctionality:(UserType)type{   switch(type):      case : USER_KABO:          al  =   new ArrayList();          al.add(new Functionality());      case : USER HAEB;....}

我遍历这个数组来检查用户是否具有功能。根据登录状态,我在代码中设置用户类型。

我正在寻找一种更灵活的方法,可以轻松地向任何用户添加功能,并允许在不修改太多代码的情况下添加任何用户。

最佳答案

从架构的角度来看,您的问题类似于Best Design for a User/Role Management System? 。接受的答案建议使用 role-based access control (RBAC)模式,这对您的情况也有意义。

基本上,每个用户都知道一个或多个角色(您所说的用户类型)。每个角色都知道它可以执行的一个或多个操作(您所说的功能)。

如果您想添加新功能,则必须创建一个从Operation派生的新类,其中包含新的源代码,并将所有适当的角色链接到它。如果您想添加新用户或新角色,则不必创建新的源代码,因此您无需创建新类,而只需从类 SubjectRole 中创建一个新对象,并将其适当链接。

为了维护您的应用,您可以轻松地将代码中的用户角色创建提取到应用外部的配置中,这样您就不必修改任何代码来更改它们。这很有效,因为您不必创建或修改类。但由于需要更改操作,因此从应用程序外部配置这些操作会更加困难,而且很可能最好的方法就是创建新类;但当然这也是可能的,例如具有插件机制。

关于java - 添加多种用户类型,每个用户都有不同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com