@oop_ru

Страница 221 из 785
Yegor
10.05.2017
08:13:49
Я слышал так много разных определений IoC, что решил написать краткую статью об этом, чтобы упростить проблему. Вот она, может будет кому интересно: http://www.yegor256.com/2017/05/10/inversion-of-control.html

Yegor
10.05.2017
08:14:42
Sergey
10.05.2017
08:15:31
а еще ты привел ссылку на dependency inversion от дяди боба

Google
Sergey
10.05.2017
08:15:35
непонятненько

особенно не понятно почему не приведена ссылка на первоисточник где впервые засветился ioc

Yegor
10.05.2017
08:16:06
а что за ссылка?

Sergey
10.05.2017
08:16:11
сча найду

http://www.laputan.org/drc/drc.html

вроде бы оно

в целом я вангую что твоя статья не уменьшит путаницы в разнице между IoC и DIC. Меня когда просили объяснять что есть IoC я в пример приводил обработку ввода/вывода из консоли



что мол не программа дергает ввод/вывод, а некий фреймворк дергает программу

иньекция зависимостей лишь частный случай - не объект собирает свои зависимости, а зависимости волшебным образом приходят ему сверху

а DIP дяди боба это хоть и смежная штука но нет

Yegor
10.05.2017
08:26:59
за линк спасибо, добавлю в статью щас

Aleh
10.05.2017
14:29:44
короч, ближе к теме, выше хороших ссылок по IoC накидали

Google
da horsie
10.05.2017
16:16:10
PrintedBook тоже стремная штука. Ты сайд-эффекты в конструктор поместил, получается?

Sergey
10.05.2017
20:36:01
> (DIP) - это принцип проектирования, который говорит, что классы должны зависеть от высокоуровневых абстракций.

мне не нравится тут слово "высокоуровневых"

Admin
ERROR: S client not available

Артур Евгеньевич
10.05.2017
20:58:45
Почему

da horsie
10.05.2017
21:25:53
Потому что уровень абстракции тут не при чем

Sergey
11.05.2017
08:00:09
Чем бы в ООП чате не занимались, лишь бы квадрат с прямоугольником не обсуждали. Сторонники того, что нельзя наследовать квадрат от прямоугольника или наоборот и нужно наследовать его от некого Shape, чем вы думаете? Как будете потом этим пользоваться, если у квадрата incSize, а у прямоугольника incWidth, incHeight. Да, в динамически типизированном языке это почти удобно, а в статически типизированном тормозной говнокод с dynamic_cast везде где надо вызывать эти методы в общем коде. Это почти антиполиморфично. Вы там трясетесь над инвариантами. Тогда банально заведите конструктор принимающий size для квадрата и width, height для прямоугольника. В данном конкретном случае не нужны никакие методы и поэтому не будет никаких проблем с инвариантами. Ну и вполне можно завести для удобства incSize возвращающий квадрат для квадрата и прямоугольник для прямоугольника. И incWidth и incHeight возвращающий прямоугольник для квадрата и прямоугольника. То есть возвращаем новые фигуры, не меняя старые и опять же не нарушаем инварианты. Над другими фигурами поступает также.

Sergey
11.05.2017
08:04:52
накипело?)

Кирилл
11.05.2017
08:15:27
Чем бы в ООП чате не занимались, лишь бы квадрат с прямоугольником не обсуждали. Сторонники того, что нельзя наследовать квадрат от прямоугольника или наоборот и нужно наследовать его от некого Shape, чем вы думаете? Как будете потом этим пользоваться, если у квадрата incSize, а у прямоугольника incWidth, incHeight. Да, в динамически типизированном языке это почти удобно, а в статически типизированном тормозной говнокод с dynamic_cast везде где надо вызывать эти методы в общем коде. Это почти антиполиморфично. Вы там трясетесь над инвариантами. Тогда банально заведите конструктор принимающий size для квадрата и width, height для прямоугольника. В данном конкретном случае не нужны никакие методы и поэтому не будет никаких проблем с инвариантами. Ну и вполне можно завести для удобства incSize возвращающий квадрат для квадрата и прямоугольник для прямоугольника. И incWidth и incHeight возвращающий прямоугольник для квадрата и прямоугольника. То есть возвращаем новые фигуры, не меняя старые и опять же не нарушаем инварианты. Над другими фигурами поступает также.
Я вот тут в свете изучения Go задумался, а может оно и не нужно вовсе это наследование?

Sergey
11.05.2017
08:15:33
накипело?)
Не бомбит

Roman ?
11.05.2017
08:15:58
Кирилл
11.05.2017
08:16:44
а там что? функциональное или процедурное??
Скорее процедурщина (но и кложуры есть), но как бы и ООП замутить можно, но это не точно)

Roman ?
11.05.2017
08:18:05
кстати мейлру на хабре выложили видеокурс по go

Aleh
11.05.2017
08:18:09
Чем бы в ООП чате не занимались, лишь бы квадрат с прямоугольником не обсуждали. Сторонники того, что нельзя наследовать квадрат от прямоугольника или наоборот и нужно наследовать его от некого Shape, чем вы думаете? Как будете потом этим пользоваться, если у квадрата incSize, а у прямоугольника incWidth, incHeight. Да, в динамически типизированном языке это почти удобно, а в статически типизированном тормозной говнокод с dynamic_cast везде где надо вызывать эти методы в общем коде. Это почти антиполиморфично. Вы там трясетесь над инвариантами. Тогда банально заведите конструктор принимающий size для квадрата и width, height для прямоугольника. В данном конкретном случае не нужны никакие методы и поэтому не будет никаких проблем с инвариантами. Ну и вполне можно завести для удобства incSize возвращающий квадрат для квадрата и прямоугольник для прямоугольника. И incWidth и incHeight возвращающий прямоугольник для квадрата и прямоугольника. То есть возвращаем новые фигуры, не меняя старые и опять же не нарушаем инварианты. Над другими фигурами поступает также.
Ты долго держался

Страница 221 из 785