Описание тега dip-principle

Принцип обращения зависимостей в объектно-ориентированном программировании, один из принципов SOLID. Не путать с Density Independent Pixel.
3 ответа

Разработать слои, прежде всего имея в виду переход к принципу инверсии зависимости и инверсии управления на более позднем этапе?

У меня есть базовое приложение, которое будет развиваться. Прямо сейчас пользовательский интерфейс включает в себя BLL. DAL - это отдельная библиотека, которая служит своей цели. У меня нет времени, чтобы сделать все прямо сейчас, поэтому я хочу обо…
12 дек '12 в 07:24
3 ответа

Что такое "модули высокого уровня" и "модули низкого уровня" (в контексте принципа инверсии зависимости)?

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

Принцип обращения зависимостей в WCF

У меня есть служба WCF, и я пытался там следовать принципу инверсии зависимости. У меня есть несколько вопросов и список ниже. Код до принципа зависимости и после принципа зависимости приведен ниже. Код перед принципом зависимости:- INodeAppService.…
10 июл '13 в 10:07
2 ответа

Объясните этот мотивационный постер о принципе инверсии зависимости

В этом сообщении блога принцип инверсии зависимости был описан этим мотивационным постером: Я не понимаю, что означает плакат: как пайка лампы непосредственно к стене нарушает принцип инверсии зависимости и как наличие вилок следует принципу инверси…
2 ответа

Внедрение зависимостей Javascript и DIP в узле: требуется внедрение против конструктора

Я новичок в разработке NodeJ, пришедшей из мира.NET. Я ищу в Интернете лучшие практики по реорганизации DI / DIP в Javascript. В.NET я бы объявлял свои зависимости в конструкторе, тогда как в javascript я вижу общий шаблон - объявлять зависимости на…
1 ответ

Как объекты могут общаться, не нарушая принцип инверсии зависимости?

Я создаю Path Planner, который поможет людям спланировать путь через консольную игру RPG. Я хочу создать таблицу, которая показывает каждый шаг на этапе. Я на самом деле реализовал рабочую версию этого, однако, это выглядит ужасно ООП дизайн; это на…
07 апр '15 в 13:59
1 ответ

Какой эффект оказывает Принцип инверсии зависимостей на структуру проекта?

В случае, если я хочу использовать DIP для разработки гипотетического модульного проекта C++. Из-за модульности я решил полностью реализовать одну особенность в одной библиотеке A, Другая библиотека B (или два, или три...) использует эту функцию (на…
1 ответ

Принцип инверсии зависимости и "строка"

Я знаю, что вы не можете создать программу, которая на 100% соответствует принципу инверсии зависимости. Все мы нарушаем это путем создания строк в наших программах, не задумываясь об этом. Поскольку String является классом, а не типом данных, мы вс…
1 ответ

Принцип инверсии зависимостей: пример модуля высокого уровня и низкого уровня

Я прошел по следующей ссылке, чтобы понять, что означают модули высокого и низкого уровня в контексте принципа инверсии зависимости. Согласно приведенному там объяснению, является ли следующий фрагмент кода хорошим / подходящим примером? public clas…
25 апр '17 в 06:46
2 ответа

Правильный ли дизайн с использованием принципа инверсии зависимостей между модулями?

Я понимаю инверсию зависимостей при работе внутри одного модуля, но я хотел бы также применить ее, когда у меня есть межмодульная зависимость. На следующих диаграммах у меня есть существующее приложение, и мне нужно реализовать некоторые новые требо…
03 сен '15 в 22:33
2 ответа

SOLID: Означает ли DIP, что композиция / агрегация к объекту запрещена?

Я пытаюсь понять и применять твердые принципы. Относится ли принцип инверсии зависимости, означает ли это, что составление / агрегирование объекта запрещено? Чтобы интерфейс всегда использовался для доступа к другому методу класса? Я имею в виду, чт…
13 ноя '16 в 11:40
20 ответов

Что такое принцип обращения зависимостей и почему он важен?

Что такое принцип обращения зависимостей и почему он важен?
3 ответа

В чем разница между инверсией зависимости и шаблоном отдельного интерфейса (или кодом для взаимодействия в целом)?

Я не могу понять разницу между принципом обращения зависимостей (одним из принципов SOLID) и общим шаблоном "Код для интерфейсов" или "Отдельный интерфейс". Все они выступают за создание уровня абстракции для отделения модулей более низкого уровня и…
20 дек '13 в 09:17
1 ответ

Как определить слово "детали", упомянутое в принципе обращения зависимостей SOLID?

Из Википедии: Принцип гласит: A. High-level modules should not depend on low-level modules. Both should depend on abstractions. B. Abstractions should not depend upon details. Details should depend upon abstractions. Я могу понять А. Но у меня есть …
1 ответ

Заводской метод нарушает принцип инверсии зависимостей?

public class DependentPizzaStore { public Pizza createPizza(String type) { Pizza pizza = null; if (Style.equals("NY")) { if (type.equals("cheese")) { pizza = new NYStyleCheesePizza(); } else if(type.equals("Veggie")){ pizza = new NYStyleVeggiePizza(…
29 апр '12 в 20:44
4 ответа

Принцип инверсии зависимостей в JavaScript

Кто-нибудь может помочь проиллюстрировать принцип инверсии зависимости в JavaScript jQuery? Что бы выделить и объяснить эти 2 пункта: A. Модули высокого уровня не должны зависеть от модулей низкого уровня. Оба должны зависеть от абстракций. Б. Абстр…
1 ответ

Пользовательский интерфейс в зависимости от уровня бизнес-логики нарушает принцип инверсии зависимости?

Принцип инверсии зависимостей гласит: модули высокого уровня не должны зависеть от модулей низкого уровня. Имея это в виду, мой старый: UI -> Business Logic Layer -> Data Access Layer стал UI -> Business Logic Layer <- Data Access Layer …
1 ответ

Разве Command Pattern не является реализацией принципа инверсии зависимостей?

Командный шаблон состоит из трех основных компонентов: Invoker, Command и Receiver. Клиент предоставляет Invoker информацию, необходимую для вызова определенного метода M на Receiver, в то время как это объект Command (который размещен Receiver), ко…
1 ответ

Реализация принципа инверсии зависимостей с использованием Maven и Spring

Согласно этой статье в Википедии: Реализация принципа инверсии зависимости может быть осуществлена ​​двумя способами: Наличие абстракции компонента низкого уровня в отдельном пакете, от которого зависят компоненты как высокого, так и низкого уровня.…
5 ответов

В чем разница между открытым / закрытым принципом и принципом инверсии зависимости?

DIP заявляет: Модули высокого уровня не должны зависеть от модулей низкого уровня. Оба должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций. И OCP заявляет: Программные объекты (классы, модули…