Evgeniy
а у кого то его нет, но он считает что есть)
Sergey
три этапа изучения паттернов - Сначала мы любим паттерны - Потом мы начинаем их ненавидеть - Потом мы начинаем понимать зачем они нужны и что когда юзать
Sergey
Evgeniy
да вообще судя по статье фаулера
Evgeniy
разница между di и sl
Evgeniy
от способа применения если ты экземпляр передаешь в объект это sl
Evgeniy
а если зависимости сразу готовые это di
Evgeniy
сейчас ссылку кину
Sergey
ну как бы да
Sergey
inversion не паттерн же)
как у тебя тогда может быть di или ioc ?)
Sergey
оно потому и называется "инъекция зависимостей" а не "инъекция шляпы достающая зависимости"
Evgeniy
http://martinfowler.com/articles/injection.html
Sergey
как у тебя тогда может быть di или ioc ?)
ну вот с ioc да, нипонятно...
Evgeniy
где то видел перевод на великий и могучий
Sergey
ну вот с ioc да, нипонятно...
поэтому я и переспросил, о чем вообще это было
Sergey
ioc - идея. di/sl - реализации
Ale
три этапа изучения паттернов - Сначала мы любим паттерны - Потом мы начинаем их ненавидеть - Потом мы начинаем понимать зачем они нужны и что когда юзать
- сначала мы используем паттерны - потом изучаем, но еще не понимаем, что уже их используем и начинаем овер юзать - ненавидим паттерны - осознаем предыдущие 3 пункта
Evgeniy
только там зависимости могут быть разными )
Sergey
ioc тоже по сути иньекция
ioc это INVERSION OF CONTROL, принцип. Не паттерн
Sergey
Dependency injection или service locator или фабрики или что угодно - это способы реализации этого принципа
Sergey
ок, мой любимый вопрос) event dispatcher - какой паттерн?
Sergey
тип "юзай DI что бы добиться IoC"
Ale
DI сам по себе ж паттерн, а di container - реализация
Sergey
ну да, DI - паттерн.
Ale
мне просто нравится как звучит DIC
Sergey
паттерны - это обобщенные реализации
Sergey
dick
Ale
научись пользоваться своим dic'ом
Sergey
d u like dics? - oh doooogs...
Sergey
но увы оно не так звучит
Ale
ой все
Sergey
ducks
Sergey
:D
Sergey
помню были времена
Sergey
на собеседованиях по этим паттернам гоняли везде
Evgeniy
ioc это INVERSION OF CONTROL, принцип. Не паттерн
да принцип будет более точное слово
Evgeniy
просто паттерн в моем понимание это инструмент
Evgeniy
если я вижу что в проекте принято так делать, я считаю о ioc
Evgeniy
если я вижу что service locator везде передают и изнего выдергивают завимости я думаю о это service locator
Evgeniy
фабричные методы не люблю из за статических методов, которые доступны где угодно
Evgeniy
и их могут вызвать откуда угодно кто угодно
Sergey
пусть вызывают, в чем проблема то?)
Evgeniy
но осознай тот факт что ты человек
Ale
пускай бегут, но нигде этого говна больше не пишут
Sergey
лучше сразу голову, чтобы наверняка
Evgeniy
Evgeniy
я не люблю лишние методы наружу выкидывать)
Evgeniy
инкапсуляция все дела)
Ale
принцип ж не о том
Sergey
открытости закрытости
открытости закрытости чего?))
Evgeniy
если я его открыл значит можно юзать
Evgeniy
и потом мне сложно модифицировать свой код
Ale
если статики юзать вместо именованных конструкторов, то вполне ок
Evgeniy
я открыл доступ к тому к чему не следовало
Ale
ты также можешь сказать, что конструктор потом менять плохо
Ale
или любой другой публичный метод
Ale
ну да
Ale
так и есть)
Evgeniy
менять публичный метод плохо, но иногда можно
Evgeniy
если профит от изменения перекрывает недостатки
Evgeniy
поэтому прежде чем написать public надо подумать
Evgeniy
вообще менять публичный метод не так плохо
Ale
недостатки это только боязнь изменения?
Evgeniy
менять публичный метод интерфейса еще хуже
Evgeniy
не боязнь а проблема в том что кто то мог юзать этот метод
Evgeniy
и ему придется менять код
Evgeniy
а если окажется что после его модификаций он что то публичное уберет
Ale
ну поменяй, так бывает
Evgeniy
это затронит других
Evgeniy
и так цепочкой
Ale
короче таки боязнь
Evgeniy
если у тебя кода на 1000 строк то проблем нет
Evgeniy
тут не боязнь а скорее предостережение
Evgeniy
без крайней необходимости не делать метод публичным