Разница между ioc и инъекцией зависимости. объясните зависимость впрыска весной. В чем разница в/в JSF инъекции зависимостей и впрыска пружинной зависимости.Разница между ioc и зависимостью впрыска
ответ
IoC - это шаблон дизайна, и большинство контейнеров IoC используют инъекцию зависимости. Существуют различные типы инкрементов зависимостей, но лучше всего читать некоторые из этих статей, которые мне помогли;
спасибо, но я хочу разницу b/w инъекции зависимостей JSF и инъекции пружинной зависимости. – Parag
Лучшая статья, которую вы найдете на это Мартин Фаулер в http://martinfowler.com/articles/injection.html. Что касается JSF, то эта статья http://java.dzone.com/articles/jsf-anti-patterns-and-pitfalls, по-видимому, указывает на то, что разница заключается в том, что JSF использует Setter Injection, а не Constructor Injection (что обычно является предпочтительным).
См. Dependency Injection in .NET Марк Сееманн.
Термины Injection Dependency (DI) & Инверсия управления (IoC) обычно используется взаимозаменяемо для описания одного и того же шаблона проектирования (хотя не все согласны с этой точкой, и некоторые люди склонны применять их несколько иначе). Первоначально шаблон был назван IoC, но Мартин Фаулер предложил перейти к DI, потому что все структуры инвертировали контроль в некотором роде, и он хотел быть более конкретным в отношении того, какой элемент управления был инвертирован.
В этой статье на странице Dependency Injection приведен обзор и ссылки на статью Фаулера. Он также менее специфичен для конкретных технологий, таких как Spring & PicoContainer и предоставляет ссылки на некоторые другие интересные статьи по этой теме. Согласитесь с вышеупомянутым плакатом, хотя статья Фаулера - это каноническое чтение по этому вопросу и дает большой обзор.
IoC означает инверсию управления.
Давайте посмотрим некоторые «сильнонеидеальной код» («MyComponent» зависит от «Logger»):
public class MyComponent
{
public MyComponent()
{
:
}
public void DoSomeWork()
{
var logger = new Logger();
:
}
}
Мы можем изменить его использовать «интерфейс», но кто-то должен обеспечить «реализацию«:
public class MyComponent
{
public MyComponent()
{
:
}
public void DoSomeWork()
{
ILogger logger = ...; // who’s going to provide this?
:
}
}
Инъекция зависимостей (DI) представляет собой конкретную реализацию IoC.
//Dependency Injection pattern
public class MyComponent
{
private ILogger _logger;
public MyComponent(ILogger logger)
{
_logger = logger;
}
public void DoSomeWork()
{
// Use the logger component here
_logger.Log();
:
}
}
Другая реализация - это локатор обслуживания.
//Service Locator pattern
public class MyComponent
{
public MyComponent()
{
:
}
public void DoSomeWork()
{
ILogger logger = ServiceLocator.GetService();
:
}
}
Мартин Фаулер утверждает: «С локатора службы класс приложение запрашивает для него явно посланием к локатору. При инъекции явного запроса нет, сервис появляется в классе приложения - следовательно, инверсия управления. »
Также:« Выбор между Service Locator и Injection Dependency менее важен, чем принцип разделения конфигурации службы с использование услуг внутри приложения.«
Вы можете проверить этот пост: Dependency Inversion: Service Locator or Dependency Injection
Также:
ASP.NET MVC: Resolve or Inject? That’s the Issue… Дино Эспозито
Inversion of Control Containers and the Dependency Injection pattern Мартина Фаулера
InversionOfControl Мартина Фаулера
- 1. Разница между ассоциацией и зависимостью?
- 2. Разница между зависимостью и композицией?
- 3. Понимание впрыска контейнера IOC
- 4. Угловая инжекция впрыска инжектора с угловой зависимостью
- 5. В чем разница между зависимостью приложения и зависимостью/модулем модуля?
- 6. Разница между полностью нетривиальной зависимостью и нетривиальной зависимостью
- 7. AngularJS: разница между параметром впрыска и $ инжектором
- 8. Разница между javascript-модуляцией и зависимостью Injection
- 9. Разница между зависимостью и менеджерами пакетов?
- 10. C# разница между фабричной моделью и IoC
- 11. Где именно разница между IoC и DI
- 12. Разница между пружиной IOC и пружиной AOP
- 13. В чем разница между инверсией управления и зависимостью в C++?
- 14. php mix singleton с зависимостью впрыска
- 15. Зависимость впрыска/IoC в Workflow Foundation 4
- 16. Разница между зависимостью углового Js Инъекция и функция javascript
- 17. Разница между зависимостью podspec и декларацией подфайла подкарта
- 18. В чем разница между агрегацией, составом и зависимостью?
- 19. В чем разница между репозиторием и зависимостью в Maven?
- 20. В чем разница между зависимостью проекта и другими зависимостями
- 21. В чем разница между установкой autwiring и зависимостью в Spring?
- 22. В чем разница между зависимостью и плагином в Grails?
- 23. В чем разница между компонентом и зависимостью службы?
- 24. В чем разница между инъекцией зависимостей и зависимостью?
- 25. MVC - В чем разница между настраиваемым связующим устройством и IoC?
- 26. различия между зависимостью и зависимостями в maven
- 27. различия между контейнерами IoC
- 28. Разница во времени IoC
- 29. Зависимость впрыска - где-то между конструктором и контейнером
- 30. Весна Зависимость впрыска и Autowiring
Smells домашнее задание, вопрос интервью также имеет требуемый тон – naikus
Частичный дубликат: http://stackoverflow.com/questions/3226605/inversion-of-control-dependency-injection –