2010-04-04 6 views
0

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

Что это значит на самом деле?

+0

Карусельный способ избежать дорогостоящего приведения типов, который мы должны получить –

ответ

0

Хорошим примером IoC является база данных, издевательская. При написании приложения вам может понадобиться перенести объекты для извлечения или использования в какой-то более поздний момент времени. Ну, абстрагироваться от базы данных, необходимо создать интерфейс с методом, как это:

Interface DbSaver 
+void save(MyObject myObject) 
+MyObject load(String id) 

Без IoC, вы бы что-то вроде этого:

DbSaver saver = new DefaultDbSaver(); 

или вы бы просто определить реализацию , и доступ к нему в качестве одноэлементных (который изначально представляется целесообразным для объекта манипулирования базами данных):

MyDbSaver saver = MyDbSaver.getInstance(); 

с IoC, вы можете переключить реализацию DbSaver даже перекомпилировать ваше приложение (по крайней мере Spring предоставляет это). То есть, не меняя никакого кода, вы можете использовать одну реализацию над другой. С объектами доступа к базе данных наиболее распространенной задачей является создание реализации по умолчанию, которая хранит все в памяти. Когда вы завершаете разработку, структуру или технологию базы данных, вы можете продолжать создавать свое приложение, не беспокоясь о том, как данные сохраняются. Вы просто работаете в интерфейсе.

Таким образом, бизнес-объекты отделены от интеграции баз данных, что имеет огромное преимущество, позволяя параллельно разрабатывать обе части.

+0

Что я получил: ioc позволяет гибко назначать конкретную реализацию конкретного интерфейса, просто изменяя конфигурацию. поэтому при этом он делает гибким .. исправьте меня, если я понял это неправильно или частично .. // Thanx for ur answer .. –

+0

Это в значительной степени идея, abc! –

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