Верификация Я понимаю разницу между МОК, контейнером IOC, DI и Service Locator

Прочитайте много постов о разнице между 3 идиомами. Но более запутался, тогда я столкнулся с этой статьей: http://martinfowler.com/articles/INICENICE.HTML

Просто хочу увидеть, если я получил это правильно. Пожалуйста, поправьте меня, если я ошибаюсь. Пожалуйста, сообщите мне о коррекции и дополнениях:

IOC - это концепция развязки применения при внедрении услуг, которую он использует. Приложение содержит ref в IService и не заканчивается в качестве конкретного обслуживания.

Существует как минимум два способа достижения так:

  1. di - бетонный сервис впрыскивается как CTOR PARAR / RUB Установка / впрыск интерфейса сброса ( Что означает последнее? )

  2. Серновидикатор - это компонент, который знает, что все конкретные услуги могут потребоваться приложение. Приложение явно просит конкретную услугу от локатора.

* Контейнер IOC действует фабрика управления («провайдер»).

Я получил немного запутанный «когда предпочтение (1) или (2)» часть в статье. Может ли кто-то, пожалуйста, рассказать от своего собственного опыта в словах слов слойма?

«Сервисный локатор имеет небольшое преимущество из-за более простого поведения. Однако, если вы строительные классы будут использоваться в нескольких приложениях, то инъекция зависимости является Лучший выбор. "-> Как находится локатор более простым? Потому что он явно использует вызов метода? Что лучше использовать DI, когда есть несколько приложений?

6
задан Steve Dunn 14 October 2015 в 17:10
поделиться