Как стать автором
Обновить

Комментарии 17

Марк, весьма педантичный и перфекционист к тому же, но книга хорошая. Я её читала в самолёте, пока летела из Дании.

Как-то я попросила отсортировать в порядке личного предпочтения DI-контейнеры, и Unity оказался на втором месте из-за следующего поведения:

var container = new UnityContainer();

container.RegisterType<IModule, Module1>();
container.RegisterType<IModule, Module2>("AAA");
container.RegisterType<IModule, Module2>("BBB");

var case1 = container.Resolve<IModule>();
var case2 = container.ResolveAll<IModule>();



Дак вот, в первом случаи (case1) мы получим реализацию Module1, а во втором случаи массив из реализаций Module2

Для Марка такое поведение не очивидно, почему-то)
Мало чего понял из вашего комментария, но тот же Autofaq тоже умеет ResolveAll (несколько специфически).
Напишите отсортированный список, пожалуйста.
DI это новомодное явление в С#? Интересуюсь как джавист, просто банальный интерес.
нет. Это просто один из способов организации архитектуры приложения.
В Java так же практикуют DI.
А порекомендуйте что почитать/посмотреть на тему DI in Java.
DI это новомодное явление в С#? Интересуюсь как джавист, просто банальный интерес.

>> DI – это набор принципов и паттернов

DI не привязан к языку.
Я почему и спросил что в джава оно сплошь и рядом, это как стандарт, а тут в заголовке увидел
Открывая книгу по «новомодной технике проектирования», такой как инверсия зависимостей
вот и удивился. Попросил прокоментировать, и тут сразу минусяторы набежали (
Кавычки для кого там написаны?
Одна из моих любимых книг. После прочтения уже не могу писать сильно связанный код.
Добавлю: Марк пишет у себя в блоке в основном о том, как те или иные проблемы в его проектах решаются, и иногда резюмирует, вроде как Service Locator is an Anti-Pattern. Рекомендую его блог, а ещё он отвечает в StackOverflow

Короче, мужик умный, но задрот :)
> Короче, мужик умный, но задрот :)
На таких и держится индустрия…
К сожалению, в книге не описаны ChildContainers и зачем они нужны, это до сих пор загадка для меня :)
А так, книга просто шикарная. И глава 4 тоже не настолько плоха, она позволяет сложить поверхностное впечатление о существующих на рынке контейнерах.
Child контейнеры (в Unity) нужны, чтобы разделить логику резолва зависимостей. К примеру для классов такого-то типа резолвить IContext в Context1, для других — в Context2.
В Windsor это достигается путем добавления SelectionHandler-ов
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории