Задать вопрос
i_d_1
@i_d_1
Программист PHP

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

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

Где бы вы разместили метод расчета стоимости заказа в этих двух разных ситуациях?
  • Вопрос задан
  • 341 просмотр
Подписаться 4 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • ProductStar
    Python: навык ООП и функционального программирования
    1 месяц
    Далее
  • Stepik
    Python OOP от Python_Samurai
    2 недели
    Далее
  • Учебный центр IBS
    JVA-I-001 Java: ООП и функциональная парадигма
    1 неделя
    Далее
Решения вопроса 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();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы