Действия представляют собой Варианты использования Приложения (действия, которые могут быть выполнены Пользователем или Программным обеспечением в Приложении).
Действия МОГУТ содержать бизнес-логику и/или организовывать Задачи для выполнения бизнес-логики.
Действия принимают структуры данных в качестве входных данных, манипулируют ими в соответствии с бизнес-правилами внутри или через некоторые задачи, а затем выводят новые структуры данных.
Действия НЕ ДОЛЖНЫ заботиться о том, как собираются данные или как они будут представлены.
Просто взглянув на папку «Действия» контейнера, вы можете определить, какие варианты использования (функции) предоставляет ваш контейнер.
И, глядя на все действия, вы можете сказать, что может сделать приложение.
Каждое действие ДОЛЖНО отвечать за выполнение одного варианта использования в приложении.
Действие МОЖЕТ извлекать данные из задач Tasks и передавать данные в другую задачу Task.
Действие МОЖЕТ вызывать несколько задач Tasks. (Они могут даже вызывать задачи из других модулей!).
Действия МОГУТ возвращать данные контроллеру.
Действия НЕ ДОЛЖНЫ возвращать ответ. (Работа контроллера - вернуть ответ)
Действие НЕ ДОЛЖНО вызывать другое действие (если вам нужно повторно использовать большой фрагмент бизнес-логики в нескольких действиях, и этот фрагмент вызывает некоторые задачи, вы можете создать поддействие).
Действия в основном используются из контроллеров. Однако их можно использовать из прослушивателей событий, команд и/или других классов. Но их НЕ ДОЛЖНО использовать из задач Tasks.
Каждое действие ДОЛЖНО иметь только одну функцию с именем run().
Основная функция действия run() может принимать объект запроса в качестве параметра.
Действия отвечают за обработку всех ожидаемых исключений.