
Aleksandr
03.03.2017
13:25:04

Илья
03.03.2017
13:25:06

Evgeniy
03.03.2017
13:25:07
я хочу пример кода чтобы он был di, но не был ioc
такое возможно ?)

Google

Илья
03.03.2017
13:25:16
нет

Aleksandr
03.03.2017
13:25:37
di - это способ решить вопрос ioc. по определению нет

Evgeniy
03.03.2017
13:25:40
хорошо наоборот, чтобы код был ioc но не был di ?)

Илья
03.03.2017
13:26:04
public class A
{
private B b;
public A(B b)
{
this.b = b;
}
}

Aleksandr
03.03.2017
13:26:09

Evgeniy
03.03.2017
13:27:12
сейчас скину на pastebin это уже станет ioc ?

Илья
03.03.2017
13:27:55
ну тут пытаются объяснить уже. IoC - это подход, считай это как философия
"Я добираюсь на работу на транспорте" - это подход
на каком транспорте - это уже реализация подхода
Например, на машине - это di, на трамвае - это sl

Aleksandr
03.03.2017
13:29:20
di - да, способ. sl - просто параллельное понятие

Google

Илья
03.03.2017
13:29:51
да, пардон, не то написал
Хотя я кстати и с примером наврал, вот википедия говорит, что через конструктор передача параметра это тоже di

Evgeniy
03.03.2017
13:31:18
http://pastebin.com/PKyKuNh9

Aleksandr
03.03.2017
13:31:26

Evgeniy
03.03.2017
13:31:28
вот с такой доработкой это уже станет IoC

Илья
03.03.2017
13:31:42
ну вот там на той же вики через фабрики предлагают )

Evgeniy
03.03.2017
13:32:07
вот именно
а если смотреть российскую вики

Aleksandr
03.03.2017
13:32:16

Evgeniy
03.03.2017
13:32:23
и english там еще больше разницы)
вот тут и начинается жопа)
все понимают но никто не может дать определения)

Илья
03.03.2017
13:33:30
это код di и ioc

Evgeniy
03.03.2017
13:33:45
ага вот я к тому и говорю
что привести пример di без ioc или привести ioc без di
но если такого примера нет
значит и разницы между ними нет
а если di - ioc = 0
то di = ioc

Google

Aleh
03.03.2017
13:34:38
di без ioc нельзя, потому что di это ioc, а ioc без di элементарно

Evgeniy
03.03.2017
13:34:46
давай
я тут вместо работы холивар затеял)

Aleh
03.03.2017
13:35:20
связь между системами через ивенты

Evgeniy
03.03.2017
13:35:45
в виде кода если можно

Aleh
03.03.2017
13:35:45
между компонентами\модулями\классами

Evgeniy
03.03.2017
13:35:55
необязательно рабочего просто пример

Aleh
03.03.2017
13:36:06
реализация ивент-системы?

Evgeniy
03.03.2017
13:36:24
ну EventManagerItnerface
EventInterface

Aleh
03.03.2017
13:36:48
вопрос в коде-обработчике

Evgeniy
03.03.2017
13:36:58
или ты на js пишешь без интерфейсов)

Sergey
03.03.2017
13:37:14

Илья
03.03.2017
13:37:18
public class A
{
private B b;
public A()
{
this.b = BFactory.getB();
}
}

Aleh
03.03.2017
13:37:34
использование фреймворка уже IoC

Evgeniy
03.03.2017
13:37:39
только в пхп стиле, но суть понятна
хорошо получается по твоим словам ioc не отвечает за создание объекта

Aleh
03.03.2017
13:39:36
ioc это инверсия контроля, это про то, кто управляет потоком выполнения
а не про создание объектов

Google

Aleh
03.03.2017
13:40:02
использование стратегий - IoC

Evgeniy
03.03.2017
13:40:53
получается есть Observer

Aleh
03.03.2017
13:40:57
events - IoC

Evgeniy
03.03.2017
13:41:45
получается IoC это поведенческий подход
ну или поведенческий
а di это структурный
ну или порождающий
ioc - поведенческий подход, di - порождающий подход
так получилось?)

Aleh
03.03.2017
13:45:37
не знаю о чем ты)

Admin
ERROR: S client not available

Илья
03.03.2017
13:45:41
ioc - это абстрактный подход к проектированию, сама идея
di - семейство однотипных конкретных реализаций этой идеи
помимо di есть еще другие семейства реализаций

Evgeniy
03.03.2017
13:47:13

Илья
03.03.2017
13:47:29
ioc более общее понятие
включающее в себя di

Evgeniy
03.03.2017
13:47:57
а service locator это реализация ну или regist

Илья
03.03.2017
13:48:20
во чего нашел

Google

Evgeniy
03.03.2017
13:48:23
registry

Илья
03.03.2017
13:48:23
https://habrahabr.ru/post/131993/

Evgeniy
03.03.2017
13:48:36
так есть и другие статьи на эту тему
говрящие другое

Илья
03.03.2017
13:49:03
например?)

Evgeniy
03.03.2017
13:49:24
https://martinfowler.com/articles/injection.html
более авторитетное мнение чем, мнение какого то .net разработчика
я ничего плохого про .net не говорю или про автора статьи на хабре, просто у фаулера некий авторитет.
там по ссылке отдельно еще о https://martinfowler.com/bliki/InversionOfControl.html
причем обрати внимание на даты постов это 2004 год примерно

Илья
03.03.2017
13:52:15

Evgeniy
03.03.2017
13:53:29
ну так получается есть ioc и есть разные виды иньекций зависимостей
в виде constructor, property, etc
setter injection, etc
так получается?)
просто мнений по этому поводу реально дофига)

Sergey
03.03.2017
13:54:31

Илья
03.03.2017
13:54:39
есть ioc, есть di как один из видов ioc, есть di через конструктор один из типов di

Sergey
03.03.2017
13:54:46
есть принцип - Inversion of Control, есть реализация - Dependency Injection
есть пафосное название - IoC Container

Evgeniy
03.03.2017
13:55:02
ну вон человек выше писал
что di это подход
здесь в чате