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

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

554
Значит синглтоны плохие, тогда что?

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

237
Что делает среда Spring? Должен ли я использовать это? Почему или почему нет?

Итак, я начинаю новый проект на Java и собираюсь использовать Spring. Почему я рассматриваю весну? Потому что многие люди говорят мне, что я должен использовать Spring! Серьезно, каждый раз, когда я пытался заставить людей объяснить, что такое Spring или что он делает, они никогда не могли дать мне...

124
Когда не следует использовать шаблон внедрения зависимостей?

С тех пор, как я начал изучать (и любить) автоматизированное тестирование, я обнаружил, что использую шаблон внедрения зависимостей почти в каждом проекте. Всегда ли уместно использовать этот шаблон при работе с автоматизированным тестированием? В каких ситуациях вам следует избегать использования...

118
Критика и недостатки внедрения зависимости

Внедрение зависимостей (DI) является хорошо известным и модным паттерном. Большинство инженеров знают его преимущества, такие как: Обеспечение изоляции в модульном тестировании возможно / просто Явно определяющие зависимости класса Содействие хорошему дизайну (например, принцип единой...

117
Разница между инъекцией зависимостей (DI) и инверсией контроля (IOC)

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

109
Понимание внедрения зависимости

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

107
В чем разница между использованием внедрения зависимостей в контейнере и поиском сервисов?

Я понимаю, что непосредственное создание зависимостей внутри класса считается плохой практикой. Это имеет смысл, поскольку это тесно связывает все, что в свою очередь делает тестирование очень трудным. Похоже, что почти все фреймворки, с которыми я сталкивался, предпочитают внедрение зависимостей с...

103
(Почему) важно, чтобы модульный тест не проверял зависимости?

Я понимаю ценность автоматизированного тестирования и использую его там, где проблема достаточно четко определена, чтобы я мог придумать хорошие контрольные примеры. Однако я заметил, что некоторые люди здесь и в StackOverflow делают упор на тестировании только модуля, а не его зависимостей. Здесь...

95
Инъекция зависимости: как ее продать [закрыто]

Пусть будет известно, что я большой поклонник внедрения зависимостей (DI) и автоматизированного тестирования. Я мог бы говорить об этом весь день. Фон Недавно наша команда только что получила этот большой проект, который должен быть построен с нуля. Это стратегическое приложение со сложными...

81
Должен ли я использовать Dependency Injection или статические фабрики?

При проектировании системы я часто сталкиваюсь с проблемой использования множества модулей (журналирование, доступ к базе данных и т. Д.) Другими модулями. Вопрос в том, как мне предоставить эти компоненты другим компонентам. Два ответа кажутся возможными для внедрения зависимости или использования...

62
Инъекция зависимостей: Инъекция поля в сравнении с Инъекцией в конструктор?

Я знаю, что это горячая дискуссия, и мнения, как правило, меняются с течением времени. Раньше я использовал исключительно полевую инъекцию для своих классов, пока не начал читать в разных блогах (например, petrikainulainen и schauderhaft and fowler ) о преимуществах инъекции в конструктор. С тех...

50
Управление и организация массово увеличенного количества классов после перехода на SOLID?

За последние несколько лет мы постепенно переходили на все более и более качественно написанный код, по несколько шагов за раз. Мы наконец начинаем переключаться на что-то, что, по крайней мере, напоминает SOLID, но мы еще не совсем там. После внесения изменений одна из самых больших претензий...

47
Что такое инжектор конструктора?

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

43
Являются ли так называемые «сквозные проблемы» действительным поводом для нарушения SOLID / DI / IoC?

Мои коллеги любят говорить «ведение журнала / кеширование и т. Д. - сквозная проблема», а затем везде использовать соответствующий синглтон. Все же они любят IoC и DI. Действительно ли это оправданное нарушение принципа SOLI D...

43
Когда НЕ применять принцип инверсии зависимости?

В настоящее время я пытаюсь выяснить, ТВЕРДЫЙ. Таким образом, принцип обращения зависимостей означает, что любые два класса должны взаимодействовать через интерфейсы, а не напрямую. Пример: если class Aесть метод, который ожидает указатель на объект типа class B, то этот метод должен фактически...

42
Зачем нам нужны фреймворки для внедрения зависимостей? [закрыто]

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

38
Сколько стоит слишком много инъекций зависимости?

Я работаю в проекте, который использует (Spring) Dependency Injection для буквально всего, что является зависимостью класса. Мы находимся в точке, где конфигурационный файл Spring вырос до 4000 строк. Недавно я смотрел один из выступлений дяди Боба на YouTube (к сожалению, я не смог найти ссылку),...

35
Повлиял ли постепенный сдвиг в методологии написания кода на производительность системы? И мне все равно?

TD; DR: Был некоторый беспорядок относительно того, что я спрашивал, таким образом, вот движущая идея позади вопроса: Я всегда хотел, чтобы вопрос был таким, какой он есть. Я, возможно, не сформулировал это хорошо изначально. Но намерение всегда было « модульным, разделенным, слабо связанным,...

32
Какие классы должны быть автоматически подключены Spring (когда использовать внедрение зависимостей)?

Я уже некоторое время использую Dependency Injection в Spring, и я понимаю, как это работает и каковы некоторые плюсы и минусы его использования. Однако, когда я создаю новый класс, я часто задаюсь вопросом - должен ли этот класс управляться Spring IOC Container? И я не хочу говорить о различиях...

32
Продвигает ли «Инверсия контроля» «Модель анемичного домена»?

Когда я использовал IoC Container в моем последнем проекте, я получил анемичные сущности и большую часть своей бизнес-логики в сервисах без сохранения состояния. Я видел проекты, написанные другими разработчиками, которые используют «Inversion of Control», и они всегда «анемичны». Поскольку «Модель...