|
Dependency inversion
|
|||
---|---|---|---|
#18+
Что-то не могу понять этот принцип. Информация, которую я читал, выглядит противоречивой. Вот оригинал: https://en.wikipedia.org/wiki/Dependency_inversion_principle High-level modules should not depend on low-level modules. Both should depend on abstractions (e.g. interfaces). Abstractions should not depend on details. Details (concrete implementations) should depend on abstractions. 1. Какой определить у какого модуля/класса выше уровень? 2. Могут ли зависеть низкоуровые модули от высокоуровневых? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2019, 16:08 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
зависимость должна быть в одну сторону. т.е. если на пальцах твой репозиторий не должен знать ничего о контроллере и сервисах. твой сервис ничего не должен знать о контроллере, твой контроллер в идеальном мире ничего не должен знать о тех обоих. вроде так мартин вещал. если речь об аббревиатуре солид. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2019, 16:26 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
andreykaTзависимость должна быть в одну сторону. т.е. если на пальцах твой репозиторий не должен знать ничего о контроллере и сервисах. твой сервис ничего не должен знать о контроллере, твой контроллер в идеальном мире ничего не должен знать о тех обоих. вроде так мартин вещал. если речь об аббревиатуре солид. Речь про SOLID Это отвечаете на какой вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2019, 16:42 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
1) где верх где низ - это зависит от твоей архитектуры и что ты там пишешь я хз. главное что вызовы из одного слоя должны ходить только в другой и никак не наоборот. если вдруг тебе понадобилось в другую сторону - ты делаешь что-то не так. 2) тут идея в том, что объясняя на пальцах, если у тебя какая-нибудь классика контроллер-сервис-репозиторий это подразумевается, что из репозиторя ты не должен обращаться к сервису, или контроллеру. только так: контроллер -> сервис -> репозиторий. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2019, 18:20 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
andreykaT1) где верх где низ - это зависит от твоей архитектуры и что ты там пишешь я хз. главное что вызовы из одного слоя должны ходить только в другой и никак не наоборот. если вдруг тебе понадобилось в другую сторону - ты делаешь что-то не так. 2) тут идея в том, что объясняя на пальцах, если у тебя какая-нибудь классика контроллер-сервис-репозиторий это подразумевается, что из репозиторя ты не должен обращаться к сервису, или контроллеру. только так: контроллер -> сервис -> репозиторий. Это я и так всё знаю, но это не выглядит соответсвующе формулировке. Вчитайтесь авторHigh-level modules should not depend on low-level modules. Both should depend on abstractions (e.g. interfaces). Abstractions should not depend on details. Details (concrete implementations) should depend on abstractions. 1. Какой определить у какого модуля/класса выше уровень? 2. Могут ли зависеть низкоуровые модули от высокоуровневых? контроллер выше сервиса? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 00:18 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
Точка входа это верхний уровень - что тебе еще не понятно? Читай книжку Мартина "чистая архитектура" Там несколько глав посвящены солиду (который тоже Мартин собрал) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 00:50 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
andreykaT, Да дело не в чтении, а в понимании. В случае спринга точка входа запроса это контроллер. То есть контроллер это верхняя точка, сервис на уровень ниже, репозиторий ещё ниже. теперь берём фразу авторHigh-level modules should not depend on low-level modules. Both should depend on abstractions (e.g. interfaces). Почему она написана именно так? Если как Вы говорите, то надо писать: автор low-level modules should not depend High-level modules. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 14:10 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
questionerберём фразу авторHigh-level modules should not depend on low-level modules. Both should depend on abstractions (e.g. interfaces). Почему она написана именно так? - вероятно потому, что здесь смысл заключен во втором предложении, про абстрации, что бы не писали: Код: java 1. 2.
а писали: Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 14:50 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
И контроллер и репозиторий это все модули низкого уровня, потому что содержат детали реализации. Модули высокого уровня это доменная модель и бизнес логика. Естественно в правиле DI речь идет о зависимости времени компиляции, естественно зависимость времени исполнения зачастую направлена в обратную сторону. Отсюда и слово Inversion. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 14:52 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
инверсия с английского вообще переводится как гомосексуализм ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 15:47 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
Kachalovquestionerберём фразу пропущено... Почему она написана именно так? - вероятно потому, что здесь смысл заключен во втором предложении, про абстрации, что бы не писали: Код: java 1. 2.
а писали: Код: java 1. 2.
а в первую фразу для красоты написали? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:00 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
andreykaTинверсия с английского вообще переводится как гомосексуализм очень познавательно. А главное очень относится к теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:03 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
да. гомосексуальная зависимость. всё верно. блин. ну посмотри ж ты книжку того чела который собрал эти принципы а. там немного страниц и всё объяснено картинками тем челом кто эту диай и сформулировал как бестпрактиз ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:12 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
andreykaTда. гомосексуальная зависимость. всё верно. блин. ну посмотри ж ты книжку того чела который собрал эти принципы а. там немного страниц и всё объяснено картинками тем челом кто эту диай и сформулировал как бестпрактиз Судя по тому, что ты прочитал, а объяснить не можешь эта книжка тебе не помогла. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 17:33 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
да. ментор из меня так себе. особенно когда слушатели деревянные. согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 17:55 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
andreykaT, очень хотел что-то процитировать из Омара-Хайама на тему мудрецов и... ну и всех остальных. Но забыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 17:57 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
Нужели никто не может ответить? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 12:05 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
я вчера перечитал книжку мартина на эту тему.. )) в общем, он там всё же топит за интерфейсы. типа зависимости между компонентами делаешь через интерфейсы а не напрямую с реализациями. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 12:42 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
[img] https://i.ibb.co/nzRwMcm/scheme1.png [/img] ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 12:45 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
авторОбратите внимание, что поток управления пересекает извилистую линию в направлении, обратном направлению зависимостей в исходном коде. Зависимости следуют в направлении, противоположном направлению потока управления — именно поэтому принцип получил название принципа инверсии зависимости ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 12:46 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
Новичку проще понять эту тему если представить что между модулями стоит сеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 13:13 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
andreykaTавторОбратите внимание, что поток управления пересекает извилистую линию в направлении, обратном направлению зависимостей в исходном коде. Зависимости следуют в направлении, противоположном направлению потока управления — именно поэтому принцип получил название принципа инверсии зависимости Как это всё соотносится с фразой: авторHigh-level modules should not depend on low-level modules. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 14:32 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
maytonНовичку проще понять эту тему если представить что между модулями стоит сеть. Новичком меня тяжело назвать) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 14:32 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
questionermaytonНовичку проще понять эту тему если представить что между модулями стоит сеть. Новичком меня тяжело назвать) Извини если обидел. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 15:10 |
|
Dependency inversion
|
|||
---|---|---|---|
#18+
questionerandreykaTпропущено... Как это всё соотносится с фразой: авторHigh-level modules should not depend on low-level modules. пока не вижу явной связи. по крайней мере в первоисточнике того кто этот принцип обосновал и в явном виде. что там в википедии хотели сказать хз. НО эта фраза есть в утверждениях к другим буквам солида. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 15:43 |
|
|
start [/forum/topic.php?fid=59&msg=39829797&tid=2121210]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
384ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 500ms |
0 / 0 |