Сервисный уровень с множественной проверкой и другими функциями

В настоящее время я разрабатываю REST Api с использованием Slim Framework с Многоуровневая архитектура:

Эксплуатации контроллеров> Сервис-> Repository-> DB

Моя проблема в том, что функция save () на одном из моих сервисов содержит набор сложных функций, которые явно нарушают Принцип разделения ответственности поэтому я сгруппировал функции исходя из их «обязанностей». Вот некоторые из них:

  • Проверка данных
  • Блокировка записи
  • Редактирование журнала
  • Делегация назначения

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

class PropertyController
{
public function saveAction($request, $response, $args)
{
$data = $req->getParsedBody();

$dataValidation = new DataValidation();
$recordLocking = new RecordLocking();
$editHistoryLogging = new EditHistoryLogging();
$destinationDelegation = new DestinationDelegation();

$dataValidation->next($recordLocking);
$recordLocking->next($editHistoryLogging);
$editHistoryLogging->next($destinationDelegation);

$propertyService = new PropertyService(new PropertyEloquentRepository());
$result = $propertyService->save($data, $dataValidation);

return $response->withStatus(200)
->withHeader('Content-Type','application/json')
->write(json_encode($result));
}
}

Это реализация хорошо и считается хорошей практикой?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector