Java использование внутреннего класса для хранения нескольких ролей человека - PullRequest
0 голосов
/ 20 апреля 2020

Вот вопрос:

Я работаю над программой по распределению сотрудников в компании по разным отделам и назначаю sh разные роли для них в команде.

Таким образом, сотрудник может быть в нескольких командах. У каждой команды у них будут разные роли.

Итак, я создал интерфейс Role и внедрил его в класс TeamHead и TeamMember Так что я могу однажды установить sh роль для сотрудника они добавлены в команду.

Однако, поскольку сотрудник может быть TeamHead в Team1 и быть TeamMember в Team2. Я не уверен, как отличить guish для получения разных результатов.

Так что я думал о создании внутреннего класса внутри Employee класса.

public class Employee
{
    private class TeamAndRole
    {
        Team t;
        Role r;

        public TeamAndRole(Team t, Role r)
        {
            this.t = t;
            this.r = r;
        }
    }

    private ArrayList<TeamAndRole> tar;

    public Employee(){
        this.tar = new ArrayList<>();
    }

    //..........
}

Так список массивов tar будет хранить все команды и роли, которые принадлежат этому сотруднику для последующего использования.

Так это правильный подход? Если да, то как мне на самом деле правильно это реализовать?

Спасибо.

1 Ответ

0 голосов
/ 20 апреля 2020

почему вы не используете карту для этого? (если они могут иметь только одну роль в команде)

и с двумя методами проверки, входит ли сотрудник в команду и какую роль он / она имеет

private final Map<Team,Role> roles;

public boolean isMember(Team team) {
  return roles.containsKey(team);
}

public Role getRole(Team team) {
  return roles.get(team);
}

из c с обработкой ошибок и нулевыми проверками

...