Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Какой паттерн проектирования выбрать?


Автор: zammar 10.4.2018, 10:40
Модели
User
UserRights


Сервисный слой
UserRightService

Какой паттерн вы бы использовали в данной конфигурации?

Автор: krundetz 10.4.2018, 12:11
Мало данных как-то. Распиши что хочешь получить. Как у тебя права пользователя взаимодействуют с самим пользователем? За что отвечает у тебя сервисный слой?

Автор: zammar 10.4.2018, 14:19
Такой вопрос я получил на собеседовании.
Мне дали 2 модели и спросили как вы организуете назначение прав пользователю.

Я ответил что добавил бы сервисный класс.
На что меня спросили какой паттерн вы в этом случае использовали бы.

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

Цитата

Как у тебя права пользователя взаимодействуют с самим пользователем

Это не важно в рамках задачи.

Автор: _zorn_ 10.4.2018, 15:26
Зависит от архитектуры проекта жеть. Возможно вопрос был с подвохом ?
Паттерны, они же бесполезны сами по себе...

Автор: krundetz 11.4.2018, 12:00
Цитата(zammar @  10.4.2018,  14:19 Найти цитируемый пост)
И честно не понял чего еще от меня ждали ((

возможно вопросов с вашей стороны уточняющих задачу, но это только предположение

Цитата(zammar @  10.4.2018,  14:19 Найти цитируемый пост)
Я ответил что добавил бы сервисный класс.
На что меня спросили какой паттерн вы в этом случае использовали бы.

сказали бы Service Locator или DI, можно ещё было Bridge, но везде вам пришлось бы объяснять как вы видите их применение и для чего
так как преимущество от их применения появляется только в конкретных условиях

для Bridge это если у вас для каждой роли пользователя, будет своя модель(допустим Admin или Customer) с каким то отличным поведением, но единым интерфейсом вызова этого поведения

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)