Контейнеры IoC связаны с файлами конфигурации?

Недавно я разработал консольное приложение для тестера производительности без пользовательского интерфейса с помощью контейнера IoC (Castle-Windsor-Microkernel). Эта библиотека позволила мне позволить пользователю выбирать, какие тесты запускать, просто путем изменения файла конфигурации.

Я понял, что такое контейнеры IoC? Я не уверен. Даже Джоэл сказал здесь, на SO, что IoC сложно понять.

Что вы сделаете из моего примера? Я использую контейнер IoC именно для того, для чего он был разработан? Или я просто использую одну из его второстепенных функций?


person Jader Dias    schedule 10.01.2010    source источник


Ответы (3)


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

Контейнеры IoC не связаны с файлами конфигурации - на самом деле есть примеры, которые вообще не используют файлы конфигурации (например, LinFu).

Предлагаем вам прочитать об инъекции зависимостей, чтобы узнать, что это такое на самом деле.

person David M    schedule 10.01.2010

Я использую контейнер IoC именно для того, для чего он был разработан?

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

person ChrisF    schedule 10.01.2010

Я настоятельно рекомендую вам прочитать эту статью Мартина Фаулера. Это немного длинно, но это одна из лучших ссылок.

Контейнер IOC не является структурой конфигурации. Один из способов реализации - использование файлов конфигурации. В некоторых контейнерах даже нет файлов конфигурации для определения объектов и их внедрения.

IOC также называют внедрением зависимостей, что является более подходящим названием. То, что вы сделали, на самом деле было одним из применений этого. Вы сможете сделать больше, если вы хорошо это поймете.

person Amin Emami    schedule 12.01.2010