Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Dependency inversion  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 618
questioner
этого читал причём ещё до публикации вопроса
тогда в чем вопрос?
Тут такое дело.
Одни угадывают DI с двух нот. Другие с 3_х. А третьи всю жизнь используют, но с одной ноты не угадывают.
Может толкование такое. Или учителя попались такие.
Попробуй на французском толкования.
Я лично предпочмтаю примеры.
Примеры понятны? В коде?
25 июн 19, 14:03    [21914883]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
questioner
Member

Откуда:
Сообщений: 1716
PetroNotC Sharp
questioner
этого читал причём ещё до публикации вопроса
тогда в чем вопрос?
Тут такое дело.
Одни угадывают DI с двух нот. Другие с 3_х. А третьи всю жизнь используют, но с одной ноты не угадывают.
Может толкование такое. Или учителя попались такие.
Попробуй на французском толкования.
Я лично предпочмтаю примеры.
Примеры понятны? В коде?


Надо всё таки прочитать топик с начала) Вы ничего нового не открыли. В целом я думаю в какой-то степени мы докопались до истины.
25 июн 19, 14:07    [21914889]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 618
questioner,
Да. Я ничего нового не открывал). Даль ссыль на русские примеры и картинки.
Я все понял по ним.
Кто не понял, пусть еще пишет).
25 июн 19, 14:10    [21914898]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
questioner
Member

Откуда:
Сообщений: 1716
забыл ник
questioner,
а зачем тебе понимать чбе-бы-то-ни-было толкование? Вообще при чтении этой темы меня не покидают ощущение что я нахожусь в кружке толкователей корана


Ну вроде это написано не 100 лет назад. Поэтому выглядит, что "толковать" ничего не надо, а толкователей в статьях пруд пруди. А потому, что написано настолько "забористо", что с ходу не понятно, что хотел сказать автор. Я понимаю, что это обобщенные абстрактные принципы, но тем не менее, приятно понимать оригинал. Вдруг там что-то ещё есть)

Просто фраза "модули высокого уровня не должны зависеть от модулей нижнего уровня" для меня выглядит реально противоречивой. По факту же модули высокого уровня(контроллеры из всем известного spring mvc например) зависят от сервиса. Ну вытащу я этот сервис в интерфейс - ок - буду зависеть от интерфейса модуля нижнего уровня. Я бы всё равно это оценил таким образом, что модуль высокого уровня зависит от модуля нижнего уровня хоть и через его интерфейс.
25 июн 19, 14:15    [21914907]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
chpasha
Member

Откуда:
Сообщений: 7988
questioner
Просто фраза "модули высокого уровня не должны зависеть от модулей нижнего уровня" для меня выглядит реально противоречивой. По факту же модули высокого уровня(контроллеры из всем известного spring mvc например) зависят от сервиса. Ну вытащу я этот сервис в интерфейс - ок - буду зависеть от интерфейса модуля нижнего уровня

в чем противоречие? контроллер не зависит от сервиса, он зависит от контракта (интерфейса) - про сервис он может ничего не знать вплоть до инстанциирования в рантайме.
25 июн 19, 14:30    [21914928]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 618
questioner,
Ну, там, все эти буквы и SOLID конечно взаимосвязаны.
И можно придраться к формулировке.
Тут легче на примере кода.
Когда связь по интерфейсу, ты убираешь строку import unitClassABC из другого класса.
То есть слабая связанность при построении больших систем.
У тебяпоявляется 100 классов вместо 3х сильносвязанных))
25 июн 19, 14:31    [21914929]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
andreykaT
Member

Откуда:
Сообщений: 2194
перечитываю книжку мартина. короче, он диай связывает с ацикличностью зависимостей и ацикличным графом зависимостей.
Кроме того, он ясно поясняет что с его точки зрения зависимость - это скажем в джаве, вызов метода какого-то класса и импорт этого класса в твой класс. т.е. если у тебя есть класс А и в нем импорт класса Б - это зависимый класс.

далее, разрыв циклических зависимостей он предлагает разрыванием через ДИ, по-сути предлагая создавать еще один компонент куда импортятся оба и заюзан интерфейс и типа опа зависимость разорвана.
8 июл 19, 14:02    [21922686]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
andreykaT
Member

Откуда:
Сообщений: 2194
в данном утверждении:

автор
High-level modules should not depend on low-level modules. Both should depend on abstractions (e.g. interfaces).


на мой взгляд следует понимать,что если у тебя класс А класс Б класс Ц, то в классе А должны быть импорты Б, в Б - импорты Ц, но

в Ц и Б не должно быть импортов А.

если по той или иной причине это надо - создаем интерфейс и наследуем его в одном и импортим в другом по интерфейсу.
8 июл 19, 14:04    [21922687]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 618
andreykaT
Кроме того, он ясно поясняет что с его точки зрения зависимость - это скажем в джаве, вызов метода какого-то класса и импорт этого класса в твой класс. т.е. если у тебя есть класс А и в нем импорт класса Б - это зависимый класс.
да. Или по простому выше писал, наличие строки вверху import.
Нет строки - нет зависимости.
8 июл 19, 14:11    [21922695]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9181
PetroNotC Sharp
по простому выше писал, наличие строки вверху import.
Нет строки - нет зависимости.
Квалифицированные идентификаторы уже отменили?
8 июл 19, 16:25    [21922870]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
andreykaT
Member

Откуда:
Сообщений: 2194
Basil A. Sidorov
PetroNotC Sharp
по простому выше писал, наличие строки вверху import.
Нет строки - нет зависимости.
Квалифицированные идентификаторы уже отменили?

разверни ответ?
8 июл 19, 16:48    [21922891]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 618
andreykaT,
Ну, формально он прав. Можно без импорт написать полное имя и будет связанный код.
В шарпе и С++ IDE не дает так писать.
Имхо
8 июл 19, 17:05    [21922914]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
andreykaT
Member

Откуда:
Сообщений: 2194
PetroNotC Sharp
andreykaT,
Ну, формально он прав. Можно без импорт написать полное имя и будет связанный код.
В шарпе и С++ IDE не дает так писать.
Имхо

ну это обман. суть в том что ты в своем классе делаешь вызовы методов другого класса. и в этом смысле ты имеешь зависимость что если поведение того другого класса изменится - твой код очевидно тоже придется менять. (может нет).
8 июл 19, 18:00    [21922967]     Ответить | Цитировать Сообщить модератору
 Re: Dependency inversion  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 618
andreykaT,
Да. Мне использование имени с пакетом тоже не нравится в этом смысле.
8 июл 19, 18:13    [21922983]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Java Ответить