Вопросы с тегом «inversion-of-control»

Инверсия управления (IoC) - это абстрактный принцип, описывающий аспект некоторых проектов архитектуры программного обеспечения, в которых поток управления системой инвертируется по сравнению с процедурным программированием.

117
Разница между инъекцией зависимостей (DI) и инверсией контроля (IOC)

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

98
Почему Inversion of Control назван так?

Слова invertили controlвообще не используются для определения инверсии контроля в определениях, которые я видел. Определения Википедия инверсия управления (IoC) - это метод программирования, выраженный здесь в терминах объектно-ориентированного программирования, в котором связывание объектов во...

65
Что такое инверсия управления, и когда я должен ее использовать?

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

57
Принцип единой ответственности - как я могу избежать фрагментации кода?

Я работаю в команде, лидер которой является ярым сторонником принципов разработки SOLID. Однако ему не хватает большого опыта в получении сложного программного обеспечения на открытом воздухе. У нас возникла ситуация, когда он применил SRP к тому, что уже представляло собой довольно сложную кодовую...

51
Контейнеры МОК нарушают принципы ООП

Какова цель контейнеров МОК? Объединенные причины этого могут быть упрощены до следующего: При использовании принципов разработки OOP / SOLID Dependency Injection становится беспорядочным. Либо у вас есть точки входа верхнего уровня, управляющие зависимостями для нескольких уровней ниже их самих и...

42
Зачем нам нужны фреймворки для внедрения зависимостей? [закрыто]

Я читал больше о принципах Inversion of Control и Inpendency Injection как его реализации, и я уверен, что понимаю его. Кажется, что в основном говорится «не объявляйте инстанцирования ваших учеников внутри класса». Скорее, что экземпляры должны быть переданы и назначены через конструктор; «введен»...

22
Каков «правильный» способ реализации DI в .NET?

Я пытаюсь внедрить внедрение зависимостей в относительно большие приложения, но у меня нет опыта в этом. Я изучил концепцию и несколько доступных реализаций IoC и инжекторов зависимостей, таких как Unity и Ninject. Однако есть одна вещь, которая ускользает от меня. Как мне организовать создание...

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

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

18
Есть ли доказательства того, что использование внедрения зависимостей улучшает результаты в разработке программного обеспечения?

Несмотря на его популярность, есть ли эмпирические данные, которые показывают, что Dependency Injection (и / или использование DI-контейнера) помогает, скажем, уменьшать количество ошибок, улучшать удобство обслуживания или увеличивать скорость разработки в реальных программных...

18
Практика внедрения зависимостей / контейнера IoC при написании фреймворков

Я использовал различные контейнеры IoC (Castle.Windsor, Autofac, MEF и т. Д.) Для .Net в ряде проектов. Я обнаружил, что они часто подвергаются насилию и поощряют ряд плохих практик. Существуют ли какие-либо устоявшиеся практики использования контейнера IoC, особенно при предоставлении платформы /...

17
Продайте меня на контейнерах IoC, пожалуйста

Я видел несколько рекомендованных к использованию контейнеров IoC в коде. Мотивация проста. Возьмите следующий введенный код зависимости: class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest( std::auto_ptr<Dependency> d = std::auto_ptr<Dependency>(new...

15
Я получаю инъекцию зависимости, но может ли кто-нибудь помочь мне понять необходимость контейнера IoC?

Я прошу прощения, если это кажется еще одним повторением вопроса, но каждый раз, когда я нахожу статью, касающуюся этой темы, в основном это просто говорит о том, что DI. Итак, я получаю DI, но я пытаюсь понять потребность в контейнере IoC, в который, кажется, все входят. Действительно ли смысл...

15
Использование Func вместо интерфейсов для IoC

Контекст: я использую C # Я разработал класс, и чтобы изолировать его и упростить модульное тестирование, я передаю все его зависимости; он не создает объектов внутри. Однако вместо того, чтобы ссылаться на интерфейсы для получения необходимых данных, я использую ссылки общего назначения,...

14
Должен ли я написать интерфейс API перед реализацией?

Недавно я углубился в более «организованное» программирование и узнал, что я должен программировать для интерфейса, а не для реализации. Имея это в виду, было бы лучше "набросать" проект в интерфейсах, прежде чем писать реализацию для него, где это возможно? И если это так, то в случае...

14
Следование TDD неизбежно ведет к DI?

Я научился выполнять тест-ориентированную разработку (TDD), внедрение зависимостей (DI) и инверсию управления (IoC) одновременно. Когда я пишу код с использованием TDD, я всегда использую DI в конструкторах моего класса. Мне интересно, если это из-за того, как я научился делать TDD, или это...

14
Является ли инъекция зависимостей бедного человека хорошим способом ввести тестируемость в устаревшее приложение?

В прошлом году я создал новую систему, используя Dependency Injection и контейнер IOC. Это научило меня много о DI! Однако даже после изучения концепций и правильных шаблонов я считаю сложной задачей отделить код и внедрить контейнер IOC в устаревшее приложение. Приложение достаточно велико до...

12
В чем практическая разница между стилями внедрения зависимостей?

Я новичок в внедрении зависимостей, и у меня есть несколько вопросов о том, какой стиль я должен использовать в своих приложениях. Я только что прочитал статью Мартин Фаулер « Инверсия контейнеров управления» и «Шаблон внедрения зависимостей », но не могу понять практической разницы между...

11
IOC во время компиляции

Кто-нибудь начал проект для выполнения IOC во время компиляции (возможно, используя Roslyn или Linq MethodInfo emit)? Мой опыт работы с контейнерами IOC до сих пор был замечательным, за исключением нескольких небольших проблем. Многие контейнеры IOC запускаются медленно, так как большая часть...

11
Как инверсия контроля связана с инверсией зависимости

Во многих статьях по всему миру термины «Инверсия управления» и «Принцип инверсии зависимостей», похоже, перепутаны и используются как синонимы (дальнейшая путаница обеспечивается инструментами, которые называются «DI-контейнеры» и «IoC-контейнеры»). Статья в Википедии делает хорошую работу,...