Как передать значение класса в другой класс? - PullRequest
0 голосов
/ 23 ноября 2018

Я теряю себя в стакане воды.Я делаю проект, в котором я хочу управлять различными типами пользователей: зарегистрированными, посетителями, официальными и администраторами.Очевидно, что официальный и администратор являются зарегистрированными пользователями.

Итак, я создал 4 класса, из которых абстрактный пользователь.

  • Пользователь (абстрактный)
  • RegisteredUser расширяет пользователя
  • OfficerUser расширяет RegisteredUser
  • UnregisteredUser расширяет пользователя
  • AdminUser расширяет пользователя
  • Документ

Класс документа с атрибутами (дата, тип и т. д.) вызывается в Пользователь (для регистрации сайта).

Пользователь Admin может назначать пользователей OfficerUser через панель.

У меня такой вопрос, как я могу вызвать документ?класс внутри OfficerUser?Я в основном должен переместить массив RegisteredUser в массив OfficerUser с тем же именем пользователя.

Спасибо, я прилагаю код различных классов.

public class AdminUser extends User implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public AdminUser(){}

    public AdminUser(String username, String password, String email)
    {
        this.username = username;
        this.password = password;
        this.email = email;
    }


public class UnregisteredUser extends User 
{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private static UnregisteredUser unregistered;

    private UnregisteredUser(){ }

    public static UnregisteredUser get()
    {
        if(unregistered == null)
        {
            unregistered = new UnregisteredUser();
        }
        return unregistered;
    }
}

public class Documento implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    protected String type;
    protected String number;
    protected String sender;
    protected String date_sender;
    protected String date_limit;

    public Documento (String type, String number, String sender, String date_sender, String date_limit) {
        this.type = type;
        this.number  = number;
        this.sender = sender; 
        this.date_sender = date_sender;
        this.date_limit= date_limit;

    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getSender() {
        return sender;
    }

    public void setSender(String sender) {
        this.sender = sender;
    }

    public String getDate_sender() {
        return date_sender;
    }

    public void setDate_sender(String date_sender) {
        this.date_sender = date_sender;
    }

    public String getDate_limit() {
        return date_limit;
    }

    public void setDate_limit(String date_limit) {
        this.date_limit = date_limit;
    }


public class OfficerUser extends RegisteredUser implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public OfficerUser() {}

    protected Documento doc;

    public OfficerUser (RegisteredUser user)
    {
        this.username = user.username;
        this.password = user.password;
        this.email = user.email;
        this.name = user.name;
        this.surname = user.surname;
        this.fiscal_code = user.fiscal_code;
        this.telephone = user.telephone;
        this.doc = 

    }

Это частьбаза данных с MapDB, и я работаю над затмением с GWT.

public ArrayList<User> nominateOfficer( String userName){
    RegisteredUser normalOfficer = (RegisteredUser) userMap.get(userName);
    User officer = new OfficerUser(normalOfficer);
    userMap.replace(userName, normalOfficer, officer);
    this.db.commit();
    return getRegistered();
}

1 Ответ

0 голосов
/ 23 ноября 2018

Возможно, вы могли бы смоделировать его таким образом, чтобы пользователи и администраторы Office были ролями, а не пользователями.

Таким образом, роли - это особые способы, которые определяют, что может делать пользователь, и вы можете назначать разные роли разным пользователям, не создавая типы пользователей.

Таким образом, ваши отношения моделирования очень гибкие, так как вы можете добавить больше ролей пользователю, не создавая больше классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...