Инкапсулировать варианты использования в программное обеспечение
-
21-09-2019 - |
Вопрос
Я обычно пишу варианты использования для всего программного обеспечения, которое я разрабатываю. Для каждого варианта использования я обычно пишу контроллер, который направляет поток (реализует вариант использования).
Недавно я начал разрабатывать веб -приложения с помощью ASP.NET MVC. Одна из лучших практик ASP.NET MVC - сохранить очень логику в контроллерах. Я не могу понять, как я буду изменить свой дизайн, чтобы отразить это.
Я в основном хочу, чтобы мой вариант использования.
Решение 3
Создайте бизнес -компонент для инкапсуляции вариантов использования. Например, если у вас есть система управления отпуска /операции) как «Применить», «утверждать», «отклонить» и т. Д. Эти методы будут инкапсулировать ваши варианты использования. Эти методы будут принимать ваши бизнес -объекты и классы хранилища данных в качестве входных данных и выполнять вариант использования.
class LeaveManager{
int Apply(from, to);
bool Approve(leaveApplicationId, approverId);
bool Reject(leaveApplicationId, approverId);
}
Затем вы можете использовать этот бизнес -компонент в своих контроллерах, чтобы выполнить вариант использования путем предоставления необходимых параметров.
Другие советы
Я думаю, что наличие жирной модели и узкого контроллера, как правило, является хорошей практикой на любом языке, а не специально .NET MVC. Проверьте это приятно статья Это проходит сценарий образца, показывающий преимущества жировой режима в Ruby на Rails (но идеи применимы к любому языку).
Для представления кассов использования в вашем коде, я думаю, что гораздо лучшее место для них находится в тестовых сферах, а не в контроллере.
Поддайте как можно больше бизнес -логики к вашим моделям и вспомогательным классам, и используйте контроллеры в основном для обработки вызовов URL и создания соответствующих моделей, извлечения из них данных и подталкивания данных к представлениям. Взгляд и контроллеры должны принимать как можно меньше решений.