Чистая архитектура: должен ли я иметь прецедент для каждой конечной точки Http?

#web-applications #use-case #clean-architecture

#веб-приложения #прецедент #чистая архитектура

Вопрос:

Предположим, я должен создать веб-страницу, на которой пользователь:

  • Поиск продуктов
  • Нажмите на конкретный продукт и покажите подробности
  • Измените некоторые детали и нажмите Сохранить.

Я ожидаю, что в моем веб-приложении будет ProductController с тремя действиями: одно для списка, одно для деталей, одно для сохранения изменений.

Должен ли я иметь три разных пользовательских варианта (тогда три класса) или достаточно иметь один класс (например, ProductInteractor) с тремя методами?

Я боюсь, что наличие варианта использования для каждой точки входа приведет к созданию большого количества кода котла..

Спасибо за любую помощь!

Ответ №1:

Вы уже разработали три действия контроллера, какая разница, если вы разработаете три интерактора?

В конце концов, у вас есть три разных варианта использования, поэтому мой вам совет — следовать SRP (принципу единой ответственности) и позволить каждому варианту использования иметь свой собственный interactor.

Это дало бы вам больше гибкости в том смысле, что было бы легко, например, заменить существующую реализацию поиска продуктов на новую — независимо от других взаимодействующих.