Сегодня я столкнулся с проблемой создания разных моделей поведения для модели моей корзины покупок. Это потому, что владелец интернет-магазинов хотел создать некоторые рекламные акции, такие как покупка 1, получить 5 или получить скидку 25% + некоторые дополнительные вещи и т. Д.Определение поведения объекта с использованием полиморфного наследования
Я думал о том, чтобы сделать это с полиморфным наследованием, где моя модель Cart будет удерживать только приобретенные продукты и аксессуары и будет иметь множество «моделей поведения», где они получат свои данные, такие как общая сумма покупки (которая может выйти на 25%), и вызовите методы, подобные тем, которые закрывают сделку (где я мог бы добавить новые, указанные продукты для рекламных акций, где вы получаете 5 бесплатных вещей).
Вначале мне казалось правильным создать такие отношения, так как это не потребует большой работы над интерфейсом модели, поскольку он будет продолжать нормально общаться с другими объектами, только внутренние изменения будут изменены. Теперь я вижу, как я создаю много дерьма, повторил код по моделям поведения и начал выяснять, есть ли другие, более элегантные способы сделать это ...
Знаете ли вы лучший способ?