2010-07-14 3 views
3

Один мой друг (он является разработчиком .NET/C++, как я) спросил меня:Инъекционная инъекция: все ли мы должны это знать?

Dependency Injection: мы все должны знать, что? Зачем?

Не могли бы вы сказать:

  1. Ваше мнение: действительно ли мы должны знать, что шаблон и как его реализовать?
  2. Хорошая ссылка (ссылка), которая могла бы объяснить «почему?».

Большое спасибо.

P.S. Я понимаю, что я много прошу ... но я не могу найти хорошую ссылку самостоятельно ...

+2

Возможный дубликат: http://stackoverflow.com/questions/130794/what-is-dependency-injection –

ответ

1

Хорошие комментарии размещены здесь, но нет четкого ответа на вопрос «Ваше мнение: действительно ли нам нужно знать этот образец и как его реализовать?"

С моей точки зрения это должно быть„да“, если по крайней мере, один из вариант применяется к вам:

  • вам нужно написать (автоматизированные) юнит-тесты для применения;
  • что вам нужно разъединить компоненты приложения;.
  • вы хотите иметь возможность легко изменить источник данных

ответа на вопрос «Почему?», перечислены в предлагаемых ссылок

.

Большое спасибо за вашу помощь.

4

Инъекционная инъекция - инструмент для создания слабосвязанного кода. Как таковой он не является обязательным, но он будет делать изменения, рефакторинг и тестирование легче. Если вы хотите подробно обсудить DI и как это можно применить, я рекомендую следующую книгу Dependency Injection in .NET. Несколько глав доступны для загрузки, чтобы вы начали. Хотя примеры в книге - все C#, идеи универсальны.

3

Dependency Injection является инструмент, который помогает программисту или архитектуре создавать модульный, независимый, свободно связанный и легко проверяемый код. Это не обязательное требование, однако оно, как правило, упрощает разработку программного обеспечения, поскольку оно облегчает многие проблемы управления зависимостями, которые в противном случае возникли бы. Поскольку он отделяет ваши компоненты от их зависимостей, он также значительно упрощает тестирование этих компонентов отдельно от остальной части более крупного продукта.

Около года назад я отправил ответ на вопрос IoC (инверсия управления) здесь, на SO. Вы можете найти ответ полезным, поскольку концепции также применимы к Injection Dependency, поскольку IoC - это просто средство достижения DI.

Can anyone explain to me, at length, how to use IOC containers?

Кроме того, здесь есть некоторые хорошие ссылки, объясняющие DI более подробно:

Смежные вопросы