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

Внедрение зависимостей - это шаблон проектирования, в котором зависимости (экземпляры объектов, свойства) компонента устанавливаются с помощью конструктора (ов), методов или полей (свойств). Это особая форма более общего обращения зависимостей.

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

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

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

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

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

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

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

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

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

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

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

4
Технический термин для обозначения противоположности внедрения зависимости?
Это скорее номенклатура (техническое письмо), а не чисто технический вопрос. Я пытаюсь написать предложение по рефакторингу (и назначить его себе), сосредоточенное на расширении внедрения зависимостей в нашем приложении. Хотя мы используем Spring для автоматического подключения bean-компонентов, все еще существуют экземпляры, использующие экземпляры bean-компонентов MyClass obj = new MyClass(...), которые могут …

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

2
Внедрение зависимостей с n-уровневым решением Entity Framework
В настоящее время я разрабатываю n-уровневое решение, которое использует Entity Framework 5 (.net 4) в качестве стратегии доступа к данным, но беспокоюсь о том, как включить внедрение зависимостей, чтобы сделать его тестируемым / гибким. Моя текущая схема решения выглядит следующим образом (мое решение называется Alcatraz): Alcatraz.WebUI : проект веб-формы asp.net, …

3
IValidatableObject vs Single Responsibility
Мне нравится точка расширяемости MVC, позволяющая представлениям моделей реализовывать IValidatableObject и добавлять настраиваемую проверку. Я стараюсь поддерживать свои контроллеры стройными, используя этот код в качестве единственной логики проверки: if (!ModelState.IsValid) return View(loginViewModel); Например, модель представления входа в систему реализует IValidatableObject, получает объект ILoginValidator посредством внедрения конструктора: public interface ILoginValidator { …

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