Когда Вы использовали бы Локатор Общего обслуживания?

Используйте селектор атрибутов css , так как они для

items = [item['data-fmid'] for item in soup.select("[data-fmid]")]

36
задан Jon Seigel 18 May 2010 в 02:56
поделиться

2 ответа

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

Common Service Locator позволяет вам справиться с вышеизложенным, не навязывая определенный IoC пользователям.

В самой библиотеке вы можете зарегистрировать свои собственные классы в IoC, теперь это становится намного сложнее, чем вам нужно. выбрать IoC для собственного использования, который не будет мешать вашим абонентам.

32
ответ дан 27 November 2019 в 05:57
поделиться

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

Одна ситуация, в которой это может быть полезно, - это когда у вас есть код, который не использует DI, такой как устаревший код - я сейчас в этой лодке. Добавление необходимых объектов через SL, а не их непосредственное создание, позволяет добавить некоторую абстракцию. Я вижу это как промежуточный шаг между SL и DI / IoC.

9
ответ дан Grant Palin 27 November 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: