Вопросы с тегом «dependency-injection»

17
Когда использовать интерфейсы (модульное тестирование, IoC?)

Я подозреваю, что допустил ошибку школьника и ищу уточнения. Многие классы в моем решении (C #) - осмелюсь сказать, что большинство - я закончил тем, что написал соответствующий интерфейс для. Например, интерфейс «ICalculator» и класс «Calculator», который его реализует, хотя я вряд ли заменю этот...

16
C ++: должен ли класс владеть или соблюдать свои зависимости?

Скажем, у меня есть класс, Foobarкоторый использует (зависит от) класса Widget. В Widgetстарые добрые времена wolud объявлялся как поле в Foobarили, может быть, как умный указатель, если требовалось полиморфное поведение, и он был бы инициализирован в конструкторе: class Foobar { Widget widget;...

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

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

15
Как обрабатывать «круговую зависимость» при внедрении зависимости

Название гласит «Круговая зависимость», но это не правильная формулировка, потому что дизайн мне кажется солидным. Однако рассмотрим следующий сценарий, где синие части даны от внешнего партнера, а оранжевый - моя собственная реализация. Также предположим, что есть более одного ConcreteMain, но я...

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

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

14
Многие строят одну реализацию. Я безнадежен? Использовать сервисный локатор?

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

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

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

14
MVVM и схема обслуживания

Я строю приложение WPF, используя шаблон MVVM. Прямо сейчас мои viewmodels вызывают сервисный уровень для извлечения моделей (как это не относится к viewmodel) и преобразования их в viewmodels. Я использую инъекцию конструктора, чтобы передать сервис, необходимый для модели представления. Он легко...

13
Представляют ли структуры внедрения зависимости риск зависимости?

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

13
Является ли интерфейс, предоставляющий асинхронные функции, утечкой абстракции?

Я читаю книгу « Принципы, практики и модели внедрения зависимостей» и читаю концепцию утечки абстракций, которая хорошо описана в книге. В эти дни я делаю рефакторинг базы кода C #, используя внедрение зависимостей, так что вместо блокирующих используются асинхронные вызовы. Поступая так, я...

13
Таким образом, я пишу этот код для тестирования, но что-то не так с ним, что я пропускаю?

У меня интерфейс называется IContext. Для целей этого не имеет значения, что он делает, за исключением следующего: T GetService<T>(); Этот метод просматривает текущий DI-контейнер приложения и пытается разрешить зависимость. Я думаю, что он довольно стандартный. В моем приложении ASP.NET MVC...

13
Опрос одного из аргументов в пользу внедрения зависимостей: почему сложно создать граф объектов?

Платформы внедрения зависимостей, такие как Google Guice, дают следующую мотивацию для их использования ( источник ): Чтобы построить объект, вы сначала строите его зависимости. Но для построения каждой зависимости вам нужны ее зависимости и так далее. Поэтому, когда вы строите объект, вам...

13
Является ли инъекция зависимости вручную лучшей альтернативой композиции и полиморфизму?

Во-первых, я программист начального уровня; На самом деле, я заканчиваю степень AS с финальным замковым проектом в течение лета. На моей новой работе, когда у меня нет какого-то проекта (они ждут, чтобы заполнить команду новыми сотрудниками), мне дали книги для чтения и обучения, пока я жду - одни...

13
Внедрение зависимостей: в какой момент мне разрешено создавать новый объект?

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

12
Технический термин для обозначения противоположности внедрения зависимости?

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

12
Что означает «разрешение» в программировании? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Я вижу во многих местах, где используется это слово Resolve, в Dependency...

12
IValidatableObject vs Single Responsibility

Мне нравится точка расширяемости MVC, позволяющая представлениям моделей реализовывать IValidatableObject и добавлять настраиваемую проверку. Я стараюсь поддерживать свои контроллеры стройными, используя этот код в качестве единственной логики проверки: if (!ModelState.IsValid) return...

12
Постепенные подходы к внедрению зависимости

Я работаю над тем, чтобы сделать мои классы модульно-тестируемыми, используя внедрение зависимостей. Но некоторые из этих классов имеют много клиентов, и я не готов реорганизовать их все, чтобы начать передавать зависимости. Поэтому я пытаюсь сделать это постепенно; пока сохраняем зависимости по...