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

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

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

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

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

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир