Модель входа в систему: реализовать интерфейс или композицию?

Я разрабатываю административное приложение (на PHP), где администратор может регистрировать клиентов. Есть 2 типа клиентов: компании и частные лица. Компания имеет много контактных лиц, которые могут войти в приложение. Физическое лицо может войти «сам».

Диаграмма классов

Мой вопрос Как лучше всего смоделировать, как клиенты (и администраторы) могут войти?

  • Пользовательский / CanLogin / Authenticatable интерфейс, который будет реализован ContactPerson и Individual. Этот интерфейс имеет методы getUsername () и getPassword ().
  • Пользовательский класс. Каждый КонтактПерсон и Индивидуальный пользователь имеет «много» (состав).

Интерфейс или Композиция

Примечание: пользователь с правом входа в систему (ContactPerson или Individual) может принадлежать
несколько клиентов. Даже ContactPerson может быть одним и тем же лицом
имя пользователя) как частное лицо.

Спасибо!

0

Решение

Пусть Контактное лицо унаследует человека и добавит идентификатор компании в класс контактного лица.

0

Другие решения

Других решений пока нет …