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

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

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

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

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

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

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

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

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

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

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

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

3
Продайте меня на контейнерах IoC, пожалуйста
Я видел несколько рекомендованных к использованию контейнеров IoC в коде. Мотивация проста. Возьмите следующий введенный код зависимости: class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest( std::auto_ptr<Dependency> d = std::auto_ptr<Dependency>(new ConcreteDependency) ) : d_(d) { } }; TEST(UnitUnderTest, Example) { std::auto_ptr<Dependency> dep(new MockDependency); UnitUnderTest uut(dep); //Test here } В: class UnitUnderTest { …

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.