Инкапсулировать варианты использования в программное обеспечение

StackOverflow https://stackoverflow.com/questions/2084806

  •  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 и создания соответствующих моделей, извлечения из них данных и подталкивания данных к представлениям. Взгляд и контроллеры должны принимать как можно меньше решений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top