Как правильно работать с сервисом по контракту?

  • 13 августа 2023 г. 21:16
Ответы на вопрос 3
Правильный подход может зависеть от конкретной структуры вашего проекта и его требований, но в целом есть несколько вариантов, которые могут быть разумными.

1) Использование отдельных контроллеров для каждого сервиса:
  - Создайте контроллеры "BrandController" и "CityController" в директории "Http/Controllers".
  - В каждом контроллере используйте свою соответствующую реализацию сервиса (например, `BrandService` для `BrandController` и `CityService` для `CityController`).
  - Контроллеры можно связать через провайдер, чтобы можно было использовать их в приложении.

2) Создание общего базового контроллера:
  - Создайте общий контроллер "BaseCatalogController" в директории "Http/Controllers".
  - Внутри этого контроллера создайте методы `showBrand` и `showCity`, которые будут использовать соответствующие сервисы.
  - Затем, создайте отдельные контроллеры "BrandController" и "CityController", которые будут наследоваться от "BaseCatalogController".
  - Контроллеры можно связать через провайдер, чтобы можно было использовать их в приложении.

В обоих случаях вы можете использовать провайдеры для связи сервисов и контроллеров. Провайдеры позволяют вам настроить зависимости между классами и внедрять экземпляры сервисов в контроллеры.

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