Java / Статьи / Главная страница
14-01-2008

Spring Framework - первые шаги (Конспект третий)

Прежде чем двигаться дальше и рассматривать следующие немаловажные аспекты Spring Framework, я позволю себе остановиться на мнениях относительно DI (IoC) различных авторитетных разработчиков.

Конспект третий : Inversion of Control vs. Dependancy Injection (продолжение)

Прежде чем двигаться дальше и рассматривать следующие немаловажные аспекты Spring Framework, я позволю себе остановиться на мнениях относительно DI (IoC) различных авторитетных разработчиков.

Во-первых, здесь следует отметить тот факт, что в 2004 году Мартин Фаулер в своей статье „Inversion of Control Containers and the Dependency Injection pattern" предложил уйти от термина Inversion of Control (IoC) в пользу Dependancy Injection (DI), мотивируя это тем, что термин IoC слишком общий и вызывает проблемы в осознавании происходящего у людей его использующих („Inversion of Control is too generic a term, and thus people find it confusing.").

Я же со своей стороны, не могу не согласиться с Мартином и предлагаю в дальнейшем использовать следующие термины: Inversion of Controll (IoC) контейнер – относить непосредственно к самому контейнеру т.е. собственно сам фреймворк и Dependency Injection (DI) паттерн – это шаблон проектирования, позволящий разработчикам „развязать" (decouple) компоненты их приложения, тем самым ослабив связи между ними.

Двигаемся дальше и посмотрим как же к DI относятся другие разработчики:

  • Jacob Proffitt в совем блоге "Dependancy Injectionутверждает, что Dependancy Injection не имеет ничего общего с архитектурными взглядами на постороение ПО, а единственная причина популярности этого патерна заключается в том, что он позволяет эффективно использовать юнит тесты, подставляя "временные" (mock) объекты вместо тех, которые будут использоваться в рабочей системе (production);

  • Ayende, создатель of RhinoMocks смотрит на эти вещи уже совсем по другому и считает, что главным достоинством Dependancy Injection , является все же слабая связанность объектов системы, ну что же – с этим действительно сложно поспорить;

  • И на последок, мнение Nate Kohari, утверждающего, что с точки зрения фанатов GoF, Dependancy Injection - не что иное, как шаблон Strategy.

Как видите, представленное многообразие мнений не блещет единством , что по своему просто замечательно, т.к. отражает реальность и в очередной раз подчеркивает тот факт, что использование любого подхода (паттерна, шаблона) не является панацеей и требует взвешенного и вдумчивого подхода.

В следующей лекции мы подробно остановимся на рассмотрении Application Context и практической реализации конфигурации приложения с помощью Spring Framework.

Vyacheslav Yakovenko

Spring Framework - первые шаги (Конспект второй) :: Spring Framework - первые шаги (Конспект четвертый)


Комментарии к статье "Spring Framework - первые шаги (Конспект третий)" (4)

Vyacheslav Yakovenko

03-08-2009 18-53 2 esa: Не могли бы Вы также "обычно" проинформировать нас о каком ПЕРЕВОДЕ (ссылку в студию) идет речь и на какой "первоисточник" мы должны были сослаться!? А мы все с удовольствием почитаем.

esa

31-07-2009 15-37 обычно люди информируют что их статья это ПЕРЕВОД и дают ссылку на первоисточник

Вадим

03-03-2009 10-53 Спасибо за конспекты. Только всё-таки Dependency а не Dipendancy

Slava Semushin

24-02-2009 13-03 s/паноцеей/панацеей/ И спасибо за конспекты! :)


Вам есть, что сказать?




  Введите код