Скажем, у меня есть интерфейс CrawlerInterface
с реализацией PageCrawler
и FeedCrawler
; если нам понадобятся оба класса в контроллере, как это может быть достигнуто при вводе конструктора?
Раньше мы использовали центральный ServiceProvider
для регистрации (то есть App::bind
) таких классов, но в большинстве случаев у нас есть только 1 реализация интерфейса, поэтому эта проблема еще не произошла с нами.
PS: Я также задаюсь вопросом, предполагает ли эта проблема разделить контроллер.
Обновление:
Спасибо за комментарии и ответ, чтобы объяснить, что интерфейс имеет только один общедоступный метод: crawl($uri)
, и оба искателя страницы/фида реализуют его как given a resource identifier, return resource.
Мой следующий вопрос:
Скажем, что мы находимся в сценарии calculator
, где добавление, вычитание и умножение имеют один и тот же интерфейс Operation
, который имеет только 1 открытый метод run
, в какой-то момент мы все равно столкнемся с этой проблемой правильно? Как мы вообще обрабатываем такую ситуацию с помощью ServiceProvider
?