Проектирование системы — подгруппы пользователей и администраторовJAVA

Программисты JAVA общаются здесь
Гость
Проектирование системы — подгруппы пользователей и администраторов

Сообщение Гость »


Мне нужно разработать систему, в которой пользователи будут двух разных типов -

Код: Выделить всё

Admins,Customer.Admins
может иметь роли

Код: Выделить всё

SUPER_ADMIN,ADMIN,MEMBER.Customer
может иметь роли

Код: Выделить всё

OWNER,TEAM_LEAD,TEAM_MEMBER
Не могу решить, какой подход будет правильным.
  • Использование

    Код: Выделить всё

    ENUM,like
    [/list]
        public class User {
    private UserType userType;
    private UserRole userRole;
    private AdminRole adminRole;
    }
    
    public enum UserType {
    ADMIN,
    CUSTOMER;
    }
    public enum UserRole {
    OWNER,
    TEAM_LEAD,
    TEAM_MEMBER,;
    }
    public enum AdminRole {
    SUPER_ADMIN,
    ADMIN,
    MEMBER,;
    }
    
    • Или используйте

      Код: Выделить всё

      Inheritance,like
      [/list]
         public class User {
      
      }
      public class Admin extends User{
      private AdminRole adminRole;
      }
      
      public class Customer extends User{
      private UserRole userRole;
      }
      public enum UserRole {
      OWNER,
      TEAM_LEAD,
      TEAM_MEMBER;
      }
      public enum AdminRole {
      SUPER_ADMIN,
      ADMIN,
      MEMBER;
      }
      


      Источник: https://stackoverflow.com/questions/781 ... -subgroups

Вернуться в «JAVA»