Есть ли паттерн для реализации апгрейда пользователя на сайте? Есть сайт, на котором человек может зарегистрироваться и оставить объявление.
Есть платный и бесплатные аккаунты. Бесплатный - можно написать только текст. Платный - к объявлению можно добавить картинку, объявление получит оранжевую рамку, ну и заголовок допустим жирным выделится.
Необходимо продумать легкое включение и отключение платного аккаунта. Включил - у всех объявлений пользователя появились указанный выше плюшки. Отключил - все отключилось.
Если ли какой-нибудь паттерн, как это грамотно реализовать?

21 Авг 2019 в 07:07
158 +1
1
Ответы
1

Для реализации апгрейда пользователя на сайте можно использовать паттерн "Стратегия".

Создайте интерфейс "UpgradeStrategy" с методами для добавления картинки, изменения стиля объявления и других функций платного аккаунта.Реализуйте классы конкретных стратегий, например, "BasicUpgradeStrategy" для бесплатного аккаунта и "PremiumUpgradeStrategy" для платного аккаунта.Создайте класс "User" с методами включения и отключения платного аккаунта, которые будут менять текущую стратегию пользователя.При создании объявления вызывайте методы текущей стратегии пользователя для добавления необходимых плюшек к объявлению.При отключении платного аккаунта меняйте текущую стратегию пользователя на базовую.

Таким образом, при добавлении/отключении платного аккаунта у пользователя будет легко меняться функционал его объявлений, не нарушая принципов SOLID и обеспечивая легкую расширяемость системы.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир