Запитання з тегом «dependency-injection»

Dependency Injection - це схема дизайну, де залежності (екземпляри об'єктів, властивостей) компонента встановлюються через конструктор (и), методи або поля (властивості). Це особлива форма більш загальної інверсії залежності.

4
Як поводитися з "круговою залежністю" при ін'єкції залежності
У заголовку написано "Кругова залежність", але це не правильне формулювання, оскільки мені дизайн здається солідним. Однак розглянемо наступний сценарій, коли сині частини подаються від зовнішнього партнера, а помаранчевий - це моя власна реалізація. Припустимо також, що існує більше одного ConcreteMain, але я хочу використовувати конкретний. (Насправді кожен клас має ще …

3
Множини, що будують одну реалізацію. DI безнадійно? Використовувати локатор обслуговування?
Скажімо, у нас є 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 …

6
Запитання в одному з аргументів для структур введення залежності: Чому важко створити графік об'єкта?
Рамки введення залежностей, такі як Google Guice, дають таку мотивацію їх використання ( джерело ): Щоб побудувати об’єкт, спочатку будуєте його залежності. Але для побудови кожної залежності потрібні її залежності тощо. Тож коли ви будуєте об’єкт, вам справді потрібно будувати графік об’єкта. Створення графіків об'єктів вручну є трудомістким (...) і …

3
Чи створюють схеми введення залежності залежність від ризику залежності?
Я реконструював існуючу систему, щоб використовувати ін'єкцію залежності, і ця робота пройшла безперебійно. Через деякий час я помітив, що велика кількість власних бібліотек стала залежною від структури, яку я використовував. Як результат, весь проект зараз залежить від цієї сторонні рамки. Я бачив іронію в розв’язуванні всіх залежностей, роблячи їх залежними …

3
Введення залежності: У який момент мені дозволено створити новий об’єкт?
Я переробляю PHP- додаток, і я намагаюся зробити якомога більше ін'єкцій залежності (DI). Я відчуваю, що я добре розумію, як це працює, і я, безумовно, бачу, як мої заняття стають набагато меншими та надійнішими. Я рефакторинг, щоб я міг ввести залежність, а не створити новий об’єкт у класі, але в …

4
Чи є ін'єкція залежності від руки кращою альтернативою складу та поліморфізму?
По-перше, я програміст початкового рівня; Насправді я закінчую ступінь AS на кінцевому проекті, що завершується літом. На моїй новій роботі, коли для мене не існує якогось проекту (вони чекають, щоб заповнити команду ще новими наймами), мені дали книги читати і вчитися, поки я чекаю - деякі підручники, інші не так …

8
Чи інтерфейс, що розкриває функцію асинхронізації, є хиткою абстракцією?
Я читаю книгу " Принципи, практики та схеми введення залежності", і читаю про концепцію непропускної абстракції, яка добре описана в книзі. Сьогодні я переробляю базу коду C #, використовуючи введення залежності, щоб виклики асинхронізації використовувались замість блокування. Таким чином я розглядаю деякі інтерфейси, які представляють абстракції в моїй кодовій базі …

4
Технічний термін для позначення протилежної ін'єкції залежності?
Це скоріше номенклатура (технічне написання), а не суто технічне питання. Я намагаюся написати пропозицію щодо рефакторингу (і присвоїти це собі), зосереджена на розширенні ін'єкції залежності у нашій програмі. У той час як ми використовуємо Spring для автоматичного з'єднання бобів, все ще є випадки, коли інстанціюють боби MyClass obj = new …

2
Яка практична різниця між стилями введення залежності?
Я новачок у вживанні залежностей і у мене є кілька запитань про те, який стиль я повинен використовувати у своїх програмах. Я щойно прочитав інверсію контейнерів управління та схему вприскування залежності від Мартіна Фаулера, але я не можу отримати практичну різницю між конструктором, сетером та інжекційним введенням. Мені здається, що …

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

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.