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

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

13
Тож одиночні погані, то що?
Останнім часом велика кількість дискусій про проблеми із використанням (і надмірним використанням) синглтонів. Я був одним із таких людей і раніше в кар’єрі. Я бачу, в чому проблема зараз, і все ж, все ще існує багато випадків, коли я не бачу приємної альтернативи - і не багато дискусій проти Синглтона …

7
Що робить Весняна рамка? Чи варто його використовувати? Чому або чому ні?
Отже, я починаю абсолютно новий проект на Java і розглядаю можливість використання Spring. Чому я розглядаю Весну? Тому що багато людей говорять мені, що я повинен використовувати Весна! Серйозно, щоразу, коли я намагався змусити людей пояснити, що саме таке Весна або що вона робить, вони ніколи не можуть дати мені …

8
Коли не доцільно використовувати схему введення залежності?
З часу навчання (і люблячого) автоматизованого тестування я опинився, використовуючи схему введення залежності майже в кожному проекті. Чи завжди доречно використовувати цю схему під час роботи з автоматизованим тестуванням? Чи існували ситуації, які вам слід уникати використання ін'єкційних залежностей?

8
Критика та недоліки ін'єкції залежності
Ін'єкційна залежність (DI) - добре відома та модна модель. Більшість інженерів знають його переваги, як-от: Можливість / простота ізоляції при тестуванні одиниць Явно визначають залежності класу Сприяння гарному дизайну (наприклад, принцип єдиної відповідальності (SRP)) Увімкнення швидкого переключення реалізацій ( DbLoggerзамість ConsoleLoggerнаприклад) Я вважаю, що існує загальна думка про галузь, що …

4
Різниця між впорскуванням залежності (DI) та інверсією управління (IOC)
Я бачив багато посилань на залежність впорскування (DI) та інверсії контролю (МОК), але я не знаю, чи є різниця між ними чи ні. Я хотів би почати використовувати одне чи обидва, але я трохи розгублений у тому, чим вони відрізняються.

9
Розуміння ін'єкції залежності
Я читаю про введення залежності (DI). Для мене це дуже складна річ, оскільки я читав, що це стосується інверсії управління (IoC), і я відчував, що збираюся в дорогу. Це моє розуміння: замість того, щоб створювати модель у класі, який також її споживає, ви передаєте (вводите) модель (вже наповнену цікавими властивостями) …

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

11
(Чому) важливо, щоб одиничний тест не перевіряв залежності?
Я розумію цінність автоматизованого тестування і використовую його там, де проблема досить чітко визначена, щоб я міг знайти хороші тестові випадки. Однак я помітив, що деякі люди тут і на StackOverflow наголошують на тестуванні лише одиниці, а не її залежності. Тут я не бачу вигоди. Знущання / заглушення, щоб уникнути …

18
Введення залежності: Як продати [закрито]
Нехай буде відомо, що я великий шанувальник введення залежності (DI) та автоматизованого тестування. Я міг про це цілий день говорити. Фон Нещодавно наша команда щойно отримала цей великий проект, який потрібно будувати з нуля. Це стратегічне застосування зі складними бізнес-вимогами. Звичайно, я хотів, щоб це було приємно і чисто, що …

7
Чи слід використовувати залежно-впорскувальні або статичні заводи?
При розробці системи у мене часто виникає проблема використання купою модулів (ведення журналів, доступ до бази даних тощо), які використовуються іншими модулями. Питання в тому, як я можу запропонувати ці компоненти іншим компонентам. Дві відповіді здаються можливими введенням залежності або з використанням заводської схеми. Однак обидва здаються неправильними: Заводи випробовують …

5
Вприскування залежностей: впорскування поля проти введення конструктора?
Я знаю, що це гаряча дискусія, і думки, як правило, змінюються з часом щодо найкращого підходу. Я мав звичай використовувати виключно ін'єкції поля для моїх класів, поки я не почав читати на різних блогах (EXS: petrikainulainen і schauderhaft і ловця ) про переваги ін'єкції конструктора. З тих пір я переключив …

7
Керування та організація масово збільшеної кількості занять після переходу на SOLID?
Протягом останніх декількох років ми поступово переходимо до прогресивно вдосконаленого письмового коду, кілька кроків дитини одночасно. Ми нарешті починаємо переходити на щось, що принаймні нагадує СОЛІД, але ми ще не зовсім там. З моменту переходу, одна з найбільших скарг розробників полягає в тому, що вони не витримують експертного огляду та …

3
Що таке інжектор конструктора?
Я розглядав терміни введення конструктора та впорскування залежностей, переглядаючи статті про схеми дизайну (Локатор обслуговування). Коли я розмовився про впорскування конструктора, я отримав незрозумілі результати, що змусило мене зайти сюди. Що таке інжектор конструктора? Це специфічний тип введення залежності? Канонічний приклад був би чудовою допомогою! Редагувати Переглянувши ці питання після …

11
Чи називаються так званими "наскрізними проблемами" вагомим приводом зламати SOLID / DI / IoC?
Мої колеги люблять говорити, що "ведення журналів / кешування / тощо. Є суперечливою проблемою", а потім продовжують використовувати відповідний сингл. І все ж вони люблять IoC та DI. Це справді вагомий привід зламати принцип SOLI D ?

7
Коли НЕ застосовувати принцип інверсії залежності?
На даний момент я намагаюся розібратися з твердим. Отже, Принцип інверсії залежності означає, що будь-які два класи повинні спілкуватися через інтерфейси, а не безпосередньо. Приклад: Якщо class Aє метод, який очікує на вказівник на об’єкт типу class B, тоді цей метод повинен очікувати об'єкта типу abstract base class of B. …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.