@oop_ru

Страница 160 из 785
Max
22.03.2017
21:25:16
зависимости в конструкторе не видны, нельзя интерфейсы использовать, зависимость классов от локатора, тесная связь с локатором

Артур Евгеньевич
22.03.2017
21:34:11
день сурка прямо
всмысле, я уже спрашивал что ли?))

Aleh
22.03.2017
21:34:39
ну в смысле ты был в обсуждении тут про IoC

Артур Евгеньевич
22.03.2017
21:38:29
да пздц, теория без практики это бред полный. Толку вот что я все это читаю с вами обсуждаю, а в ежедневной практике не использую((

Google
Артур Евгеньевич
22.03.2017
21:38:38
ну и забываю всё соответственно

Max
22.03.2017
21:45:03
почему не используешь? у меня все классы на DI уже и DIC используется вовсю, single responsibility и лискова не забываю

или тебе на работе тупо ООП не дают писать

Max
22.03.2017
21:46:02
лисков она

Like
22.03.2017
21:47:45
лисков она
Просто подстановка?

Артур Евгеньевич
22.03.2017
21:52:04
блин вот щас вспомнил что статью же советовали уже

https://martinfowler.com/articles/injection.html

Max
22.03.2017
21:58:11
>With the service locator you have to search the source code for calls to the locator.

вот это самое тупое в локаторе

часто его не только в конструктор напихают же, а еще по всему коду

da horsie
22.03.2017
22:00:02
я использую DIC как SL в легаси коде

у меня гигантский проект, там все плохо с зависимостями

Google
da horsie
22.03.2017
22:00:35
все в императивном стиле

я выделяю куски логики в самостоятельные объекты, которые создаются в DIC

а легаси юзает этот DI как сервислокатор

Артур Евгеньевич
22.03.2017
22:01:51
бля а чем тогда сервис локатор от реестра отличается?

или это его частный случай

da horsie
22.03.2017
22:01:57
и мне кажется это удобно

Max
22.03.2017
22:04:22
реестр по имени класса ищет, еще тупее, с локатором хоть можно какой-то интерфейс на сам локатор запилить и ставить его на классы, с именами вообще ничего

опечатался где-то в запросе к реестру, и поехали ошибки

алсо в реестре же один объект на строку, это уже зависимость всех классов от одного объекта

Артур Евгеньевич
22.03.2017
22:10:40
да спасибо

вот ещё нашел хорошее объяснение

http://stackoverflow.com/questions/27854298/registry-pattern-vs-service-locator-pattern-vs-dependency-injection-container

Max
22.03.2017
22:12:56
кроме того реестр не проверяет, что там ему на эту строку напихали, т.е. может по строке тебе совсем другой объект другого класса выдать, чем ты ждешь. Сервис локатор хотя бы известно, что возвращает.

Paul
23.03.2017
06:17:51
Лол

Ненужно обсуждают в чате про ненужно

Starina
23.03.2017
09:07:41
Всем привет. Подскажите пожалуйста новичку. Есть задание: необходимо разработать класс Element, реализующий элемент блок-схемы. Есть четыре стиля его отображения, которые надо комбинировать: по-умолчанию, инвертированный (inverted), зачеркнутый (striked), выделенный (highlighted). Кроме того, необходимо в дальнейшем легко добавлять новые стили и их комбинации. Способ реализации: на русских словах опиши какие классы, названия, методы и свойства и краткий пример использования. Язык JavaScript.

Дополнение . При создании экземпляра класса , Настройки делать через свойства . К примеру : экземпляр = новый Элемент ({ стиль: [{инверторный: true }] })

Как лучше это сделать

? Странно, вопрос по ООП. Ну ок, спасибо

Александр
23.03.2017
09:15:41
привет. вообще, то, что ты хочешь в языке c# очень здорово подходит под перечисление. т.е. у класса Element должно быть поле типа "перечисление". ну, а создать конструктор для класса Element вообще не вижу сложностей.. как бы все понятно, вроде

Google
Александр
23.03.2017
09:16:19
а вообще что-то похоже я нашел здесь: http://stackoverflow.com/questions/287903/enums-in-javascript

Sergey
23.03.2017
10:54:51
день сурка прямо
Это главный спор ООП

всмысле, я уже спрашивал что ли?))
Ну так может это была другая твоя личность? Осталось дождаться ту личность, что увидит твой вопрос и ответит.

Evgeniy
23.03.2017
12:02:10
надо еще ioc упоминуть)

Sergey
23.03.2017
12:06:22
скучно уже за ооп сраться

Evgeniy
23.03.2017
12:08:36
ооп vs фп

типо почему люди в ооп не разделяют состояние и поведение)

было бы збс отдельно данные (состояния) отдельно поведения (функции, методы, работающие с данными)

это шутка))) но поспорить можно)

Sergey
23.03.2017
12:11:54
как не разделяют? вполне разделяют. анемичные модели из всех дыр лезут

Evgeniy
23.03.2017
12:12:14
так получается это не кошерный ооп

Sergey
23.03.2017
12:12:17
и вся логика в сервисах, которые не имеют своего состояния и являются только модулями с набором процедурок

Evgeniy
23.03.2017
12:12:29
и модели и тд это просто структура данных (массив)

просто хранилище

а сервисы это набор функций так как они состояние не хранят)

и сервисы могут быть заменены функциями

и далее то что функция должна быть чистой и тд

потом осознание того что можно использовать map, reduce

понятие функтора для данных

Google
Evgeniy
23.03.2017
12:14:01
потом filter и прочие мелочи)

Max
23.03.2017
12:14:40
а в чем "правильность" ооп?

Evgeniy
23.03.2017
12:14:41
фишка ооп в объединение состояния и поведения)

идея того что все есть объект

а объект это набор состояний и поведений

и что там есть полиморфизм, наследоване, инкапсуляция

и как раз выдернуть из объекта состояние и передать его куда то это нарушение инкапсуляции

Admin
ERROR: S client not available

Evgeniy
23.03.2017
12:16:09
ну это так умные дядьки думают у нас в проектах все по другому)

ну и еще хороший аргументом ооп это возможность проецировать систему сверху вниз (от общего к частному)

Sergey
23.03.2017
12:17:41
это получается не правильный ооп же )
заменить анемичную модель и получается вполне ок

Evgeniy
23.03.2017
12:18:07
с точки зрения теории)

Sergey
23.03.2017
12:18:39
ты не можешь в своих сервисах хранить состояние, иначе у тебя проблемы будут

Evgeniy
23.03.2017
12:19:05
я знаю о чем ты )

Sergey
23.03.2017
12:19:10
поэтому все твое состояние в доменных модельках, в структурках типа VO/DTO

Evgeniy
23.03.2017
12:19:14
и мне тоже кажется этот подход удобным)

Sergey
23.03.2017
12:19:31
и гуляет это все по твоим связанным процедуркам под именем сервисы

Max
23.03.2017
12:19:44
кстати вопрос

Google
Evgeniy
23.03.2017
12:19:50
получается процедурное программирование )

а не ооп )

:D

Max
23.03.2017
12:19:58
где начинается ДДД? и возможно ли оно без агрегатов?

Sergey
23.03.2017
12:20:06
это получается не ооп а процедурное программирование вроде
потому что ооп это процедурщина на стероидах, иначе в реальном мире оно не виживет

Max
23.03.2017
12:20:22
мне кажется что выделение доменной области с сервисами уже ДДД

не?

Evgeniy
23.03.2017
12:20:48
ой ддд отдельная пенся, я ее так и не осилил)

Sergey
23.03.2017
12:21:20
мне кажется что выделение доменной области с сервисами уже ДДД
домены, апликейшен сервисы, инфраструктурные сервисы...

Evgeniy
23.03.2017
12:21:31
а о том что когда мы говорим что у нас ооп код, а по факту там намазано всего по чуть чуть

Sergey
23.03.2017
12:23:41
ну ок, из ООП в этих сервисах только типы и абстракции используются. если все делать по SOLID то у тебя как раз таки и выходят процедурки, которые делают только 1 функцию, подменяются наследниками, расширяются за счет сервисов и им подкладывают зависимости сверху

хочешь еще и состояние хранить? получать миллион проблем с синхронизациями

Evgeniy
23.03.2017
12:25:47
ну иногда ооп удобно ))

не всегда все так плохо )

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

просто получается если идти от solid дальше

то можно придти в ооп

раскладывая все в ddd, придерживаясь solid

и тд

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