i_d_1
@i_d_1
Программист PHP

Как верно заархитектурить заказ?

Есть заказ. Есть метод калькуляции заказа. Метод нужен во многих местах. Размешать метод можно в сущности заказа или в сервисе заказы (или калькулятор заказа, или свой вариант).
И две ситуации:
1) Стоимость заказа зависит только от собственных свойств
2) Стоимость заказа зависит от всякой лабуды например внешние апи, скидки, день недели

Где бы вы разместили метод расчета стоимости заказа в этих двух разных ситуациях?
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
php666
@php666
PHP-макака
Есть метод калькуляции заказа. Метод нужен во многих местах.
в этом и ошибка - все в кучу. Надо сделать, что бы калькуляция была не черным ящиком, а настраиваемым удобным интерфейсом:
$discountCalculator = new discountCalculator(\ListItems $items);
$discountCalculator->addCondition(new SimpleDiscount());
$discountCalculator->addCondition(new BlackFridayDiscount());
$discountCalculator->addCondition(new ByDateDiscount('last day of this month'));
$discountCalculator->addCondition(new ApiDiscount());
$discountCalculator->calculate();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы