Что такое ядро ​​(в отношении внедрения зависимостей)? - PullRequest
2 голосов
/ 24 апреля 2010

Я вижу, что термин «ядро» часто используется, но я не уверен, что он означает. Можете привести пример.

Ответы [ 2 ]

2 голосов
/ 07 ноября 2014

Ядро в Ninject и других инжекторах зависимостей является ядром приложения. Это контейнер для других модулей.

Модуль представляет собой независимый раздел вашего приложения. Вы можете организовать их так, как считаете нужным в структуре вашей кодовой базы. Затем вы загружаете эти модули в ядро ​​через конструктор. Смотрите пример этой страницы .

Объект ядра также является объектом, отвечающим за разрешение зависимостей и создание новых объектов.

Например, в Ninject в C # /. NET вы можете использовать ядро ​​для привязки интерфейса к его реализации:

IKernel ninjectKernel = new StandardKernel();
ninjectKernel.Bind<IMyFoo>().To<MyFoo>();

Тогда, когда вы создаете объект следующим образом ...

IMyFoo myFoo = ninjectKernel.Get<IMyFoo>;

... ядро ​​автоматически вернет экземпляр типа MyFoo из-за только что указанной привязки.

Эта страница дает более подробный обзор того, как ядра и модули сочетаются друг с другом, для дальнейшего чтения. Эта страница от Ninject также может помочь.

2 голосов
/ 25 апреля 2010

Ядро - это сам контейнер. Он называется «ядром» в Windsor (на самом деле MicroKernel ) и Ninject, потому что он обеспечивает только функциональность внедрения ядра, полагаясь на оболочки (в случае MicroKernel это WindsorContainer ) или modules / методы расширения (в случае Ninject) для обеспечения удобных функций (например, WindsorContainer обеспечивает анализ конфигурации XML)

...