Что входит в Ваши объекты модели предметной области и что входит в Ваши сервисы?

Я получил эту работу с помощью этого кода:

// Delete the file from WordPress server after processing.
      $filename_only = wp_basename( get_attached_file( $post_thumbnail_id ) );
      $upload_dir = wp_upload_dir();
      $dir = $upload_dir['basedir'] .'/'. date('Y') . '/' . date ('m');
      $file = $dir . '/' . $filename_only;


      if ( ! empty ($file)){
       chdir($dir);
       unlink($filename_only);

      }

Сначала я выбрал имя файла и каталог загрузки. Затем я проверил, существует ли файл в каталоге, и если да, то рабочий каталог изменился на локальный каталог загрузки, и удалил файл.

6
задан Community 23 May 2017 в 12:26
поделиться

1 ответ

Идея DDD состоит в том, что модель предметной области содержит Ваши данные и большую часть бизнес-логики. Сервисы обычно имеют дело с персистентностью этих структур.

Затем существуют все те промежуточные случаи, где бизнес-процесс состоит из нескольких шагов, которые неизменно изменяются/изменяют объекты области. Вы обычно используете сервисы для понимания некоторого процесса. Таким образом, обычно Вы обновляете объекты области с результатами сервисов. Вы никогда не позволяете обслуживаниям вызовов реализаций объекта области собой!

Так его довольно общее для наблюдения кода как это:

if (order.isValidForPurchase() && orderValidatorService.isValidOrder( order))
    orderService.order( order)

Просто, потому что части истины известны объекту порядка, и некоторые требуют внешних данных, известных orderValidatorService. Возможно эти две строки кода могли также быть в orderService.order метод.

Я думаю, что всегда стоит заняться расследованиями, Сколько объектов области существует в этих процессах; иногда много может быть получено, заставив больше понятий, чем Вы первоначально думать. Это - действительно пересечение состояний бизнес-процесса и объектных моделей. Модели Often DDD имеют тенденцию пытаться получить домен от чрезмерно структурного представления, IMO, игнорирующий ядро, обрабатывает немного слишком много. Таким образом, если Вы чрезмерно структурны, я думаю, что Вы делаете Order объект. Если Вы добавляете процесс, возможно, Вы делаете ShoppingCartOrder, UnshippedOrder, ShippedOrder, BilledOrder и HistoricalOrder. Это также делает Вашу интеграцию сервисов более простой иногда.

4
ответ дан 17 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

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