Я разработал приложение для электронной коммерции и теперь добавляю поддержку купонов и скидок. Я хочу узнать ваше мнение по этому вопросу, поскольку оно сложнее, чем я ожидал.
Где мне хранить логику для всех видов купонов?
Скажем, у меня есть код купона, дающий мне предложение «Купи 3 и получи самый дешевый бесплатно» вместе с другим поиском купона «Получи скидку 20% на [этот продукт]» и кучу других купонов («Получи 10 % от общей суммы "," Купи 2, получи 50% от второй "и т. д.).
Я думаю о том, чтобы интерфейс Coupon
и различные реализации хранились в разных классах, а затем сохраняли имя класса в БД вместе с данными для купона. Этот подход проще всего реализовать, но не очень красиво хранить имя класса в базе данных ...
Как бы вы решили это? Как это было решено в более ранних приложениях?