#design-patterns #web
#шаблоны проектирования #веб
Вопрос:
Я хочу создать веб-сайт, на котором есть несколько разных типов пользователей, например:
- Администратор — который может делать все на сайте
- Зарегистрированный пользователь — который может делать все на своей странице.
- Незарегистрированный пользователь — который может только просматривать веб-сайт.
Существует ли шаблон дизайна, подходящий для этой ситуации, и как он будет применяться к моему сценарию?
Комментарии:
1. Зависит от того, какой язык программирования и фреймворк вы используете.
Ответ №1:
Шаблоны проектирования не являются волшебным средством для решения проблем. Это проверенные средства применения разумной практики разработки программного обеспечения к разработке кода.
Ответ №2:
Если каждая операция, выполняемая пользователем, может быть сопоставлена с URI, тогда у вас может быть уровень безопасности или использовать фреймворки, которые можно настроить с помощью сопоставления URI с ролью, чтобы разрешить доступ.
Если это на поведенческом уровне, вы, вероятно, можете использовать шаблон проектирования прокси здесь. Он будет прокси-сервером для реализации вашего полного объекта, когда вы хотите быстро завершить работу на основе проверки безопасности. Однако, если объект ведет себя по-разному для разных пользователей, вы могли бы использовать реализации декоратора для различных методов, которые должны вести себя по-разному.
И если вы хотите получить другую версию объекта, которая, возможно, также изменена структурно для различных ролей, можно использовать серию посетителей. Здесь может быть применим шаблон посетителя.
Ответ №3:
Это своего рода вопрос vaue, но, возможно, вы можете взглянуть на шаблон state design. Когда у пользователя есть разрешение только на чтение, вы загружаете класс состояния только для чтения. Когда пользователь имеет доступ на запись, используйте класс состояния записи.