powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Dependency inversion
25 сообщений из 64, страница 2 из 3
Dependency inversion
    #39829944
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreykaT,

https://stackoverflow.com/a/3780447/2674303 In laymen's terms: high level modules depend on low level modules, but shouldn't depend on their implementation. This can be achieved by using interfaces, thus decoupling the definition of the service from the implementation.

Я пришёл к выводу, что под любым модулем автор понимает имплементацию и причина непонимания кроется то ли в терминологии, то ли в лингвистике и если по русски, то это будет звучать так, что Модули высокого уровня вместо того, чтобы зависеть от имплементации модулей нижнего уровня должны зависеть от их обобщённых интерфейсов. Таким образом написав другую имплементацию мы сможем её переиспользовать не меняя остальной код.

Конечно выглядит слегка притянутым за уши, но лучшего ничего не придумал.
...
Рейтинг: 0 / 0
Dependency inversion
    #39829945
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с другой стороны, там есть такая фраза:

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

и дальше это:
авторAbstractions should not depend on details. Details (concrete implementations) should depend on abstractions.
...
Рейтинг: 0 / 0
Dependency inversion
    #39829953
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreykaTс другой стороны, там есть такая фраза:

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



А там это где? в книге?

Ох как загнули с линией, остроумно))

Я не уверен, что до конца понял, что ключевую фразу авторОбратите внимание, что поток управления пересекает извилистую линию
в направлении, обратном направлению зависимостей в исходном коде.


типо по интерфейсу найдётся имплементация? то бишь полиморфизм == Dependency inversion?
...
Рейтинг: 0 / 0
Dependency inversion
    #39829971
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не совсем. насколько я понимаю мартин всячески акцентирует внимание что модули между собой должны общаться исключительно через интерфейсы и исключительно в одном направлении.

там - это да. это в книге мартина где он поясняет за каждую букву солида.
...
Рейтинг: 0 / 0
Dependency inversion
    #39829973
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще, в тех же ранних спрингах например, бины инстанциировались фабрикой по интерфейсу. т.е. хочешь получить бин интерфейсаА говори фабрике хочу получить бин по интерфейсуА, оно идет ищет кандидатов и по нему строит этот бин. но тут момент в том что как правило, по интерфейсуА есть класс всегда только один А )) если же их больше то ты явно квалифаером указываешь какой именно объект по какому классу по интерфейсу построить.

херня короче.
...
Рейтинг: 0 / 0
Dependency inversion
    #39829975
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он пошел дальше у него и фабрика - это интерфейс.
...
Рейтинг: 0 / 0
Dependency inversion
    #39829992
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTне совсем. насколько я понимаю мартин всячески акцентирует внимание что модули между собой должны общаться исключительно через интерфейсы и исключительно в одном направлении.
По поводу направления. Мне кажется это отсылка к CQRS и к принципу Tell-do-not-ask.
Это хороший паттерн для перформанса но в некоторых случаях он может сделать
простоую систему - неоправданно сложной. Поэтому... it depends. И это надо
обсуждать на уровне лиц которые принимают важные проектные решения.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830013
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дак ЦКуРС это больше о разделении обязанностей. так и хочется сказать сингл респонсибилити (но это несколько о другом, как оказалось,с точки зрения мартина). а-ля. если у тебя что-то читает, то оно не дложно ничего изменять. и, в свою очередь частично о разделении интерфейсов. не уверен, что это как то относится к депенденси инвершн.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830049
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Что тут непонятно?
https://ru.m.wikipedia.org/wiki/Принцип_инверсии_зависимостей
В правилах форума русскоязычность общения
...
Рейтинг: 0 / 0
Dependency inversion
    #39830058
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTне совсем. насколько я понимаю мартин всячески акцентирует внимание что модули между собой должны общаться исключительно через интерфейсы и исключительно в одном направлении.

там - это да. это в книге мартина где он поясняет за каждую букву солида.по данному сабжу в вики черным по белому сказано что стрелки связи меняют направление.
Зависимость убирается.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830081
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpandreykaTне совсем. насколько я понимаю мартин всячески акцентирует внимание что модули между собой должны общаться исключительно через интерфейсы и исключительно в одном направлении.

там - это да. это в книге мартина где он поясняет за каждую букву солида.по данному сабжу в вики черным по белому сказано что стрелки связи меняют направление.
Зависимость убирается.
какие стрелки?
...
Рейтинг: 0 / 0
Dependency inversion
    #39830092
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Связи
questioner1. Какой определить у какого модуля/класса выше уровень?
...
Рейтинг: 0 / 0
Dependency inversion
    #39830093
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Там картинки есть. Посмотри.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830139
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner1. Какой определить у какого модуля/класса выше уровень?
2. Могут ли зависеть низкоуровые модули от высокоуровневых?
1. Данные поступают в первый, потом во второй и т.д. классы/методы, кто раньше получил данные, тот и на верхнем уровне,
в частности контроллер(в который добавлен сервис), затем сервис(в котором репозиторий и всякие конвертеры и мапперы), затем репозиторий.
2. Нет, не могут. Нельзя в сервис или в репозиторий добавить контроллер, нельзя в репозиторий добавить сервис. И всё в таком духе.

И все они связаны через интерфейсы.
Вроде всё понятно. Наверное, надо реальный проект посмотреть, сразу вся логика становится очевидной и логичной.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830143
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic1. Данные поступают в первый, потом во второй и т.д. классы/методы, кто раньше получил данные, тот и на верхнем уровне,


Какая же чушь. Потом это читают новички и из них вади вырастают.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830144
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данными могут быть не только объекты со значениями в полях переданные в контроллер, но и какие-то команды от UI, например, клик по кнопке, который вызывает метод контроллера.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830145
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerNixic1. Данные поступают в первый, потом во второй и т.д. классы/методы, кто раньше получил данные, тот и на верхнем уровне,


Какая же чушь. Потом это читают новички и из них вади вырастают.
Давай объясни по другому тогда.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830147
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixicfixxerпропущено...


Какая же чушь. Потом это читают новички и из них вади вырастают.
Давай объясни по другому тогда.

Я уже объяснял в этой ветке.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830159
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerNixicпропущено...

Давай объясни по другому тогда.

Я уже объяснял в этой ветке.
Ну да, прочитал, раньше к теории особо не обращался, просто на практике использовал эти же принципы
https://www.baeldung.com/java-dependency-inversion-principle
Но в комментарии, можно было и не опускаться до уровня форумчанина из 1С ))
...
Рейтинг: 0 / 0
Dependency inversion
    #39830330
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Братюнь, ты предоставил только одну ссылку на которой нет стрелок.
Про буржуазный язык прости, но 90% информации на нём - рекомендуется как можно раньше понять, что не надо его чураться
...
Рейтинг: 0 / 0
Dependency inversion
    #39830335
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerБратюнь, ты предоставил только одну ссылку на которой нет стрелок.там ссылка второго уровня.
Там больше и читать нечего.

questionerне надо его чураться
Я не чураюсь. Я прочитал обе вики, а ты русскую не читал, и сейчас опять не прочитал все ссылки там на обсуждение.
И самое главное КОД С ПРИМЕРАМИ.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830336
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixicquestioner1. Какой определить у какого модуля/класса выше уровень?
2. Могут ли зависеть низкоуровые модули от высокоуровневых?
1. Данные поступают в первый, потом во второй и т.д. классы/методы, кто раньше получил данные, тот и на верхнем уровне,
в частности контроллер(в который добавлен сервис), затем сервис(в котором репозиторий и всякие конвертеры и мапперы), затем репозиторий.
2. Нет, не могут. Нельзя в сервис или в репозиторий добавить контроллер, нельзя в репозиторий добавить сервис. И всё в таком духе.

И все они связаны через интерфейсы.
Вроде всё понятно. Наверное, надо реальный проект посмотреть, сразу вся логика становится очевидной и логичной.

Человек который прочитал только заголовок detected.
...
Рейтинг: 0 / 0
Dependency inversion
    #39830339
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerБратюнь, ты предоставил только одну ссылку на которой нет стрелок.там ссылка второго уровня.
Там больше и читать нечего.

questionerне надо его чураться
Я не чураюсь. Я прочитал обе вики, а ты русскую не читал, и сейчас опять не прочитал все ссылки там на обсуждение.
И самое главное КОД С ПРИМЕРАМИ.

Вот этого перца? https://blog.byndyu.ru/2009/12/blog-post.html

этого читал причём ещё до публикации вопроса
...
Рейтинг: 0 / 0
Dependency inversion
    #39830345
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
а зачем тебе понимать чбе-бы-то-ни-было толкование? Вообще при чтении этой темы меня не покидают ощущение что я нахожусь в кружке толкователей корана
...
Рейтинг: 0 / 0
Dependency inversion
    #39830347
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никquestioner,
а зачем тебе понимать чбе-бы-то-ни-было толкование? Вообще при чтении этой темы меня не покидают ощущение что я нахожусь в кружке толкователей корана+1
))
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Dependency inversion
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]