SarcasmIO
😂😂
Kirk
Как вы относитесь к такой болезни ООП как AbstractFactoryBuilderBean?
Sergey
Как вы относитесь к такой болезни ООП как AbstractFactoryBuilderBean?
развивающие игры, ну те что на воорбажение ориентированы
🐴
это билдер абстрактных фабрик или абстрактный билдер фабрики?
Sergey
билдер абстрактный фабрик + бесполезный суфикс
Sergey
в целом же названия типов объектов должны передавать что делают объекты
Sergey
тут этого нет
Kirk
с помощью этого объекта можно создать любую фабрику
Sergey
с помощью этого объекта можно создать любую фабрику
ну то есть работает оно как new AnyFabric?
Sergey
что значит "любую"?
Sergey
так не бывает
Kirk
ну то есть работает оно как new AnyFabric?
это абстрактный объект, ты не можешь его создать
Kirk
сперва надо заэкстендиться
Sergey
мы тут знаете ли плохо к наследованию относимся)
🐴
абстрактная фабрика это вообще нечто странное
🐴
какой у нее публичный интерфейс?
Sergey
абстрактная фабрика это на самом деле прекрасный пример компромисов
Sergey
это тот случай когда избавиться от if-в не выходит)
🐴
public НепонятноЧто createObject() ?
Sergey
ну у тебя у всех "непонятно что" есть общий базовый тип
Sergey
а за счет принципа подстановки Барбары Лискоу тебе этого должно хватать
🐴
CreatableByAbstractFactoryInterface?
Sergey
ээм... нет
Sergey
ну например
🐴
AbstractButton, да?
🐴
ButtonInterface
Sergey
ну тип того
Sergey
только давай без суффиксов/постфиксов бесполезных
Sergey
просто Button
🐴
почему тогда фабрика абстрактная
Sergey
фабрика строит инстансы нужных типов исходя из входящих данных
Sergey
поскольку результатом ее работы является некая абстракция она и называется абстрактной
🐴
то есть фабрика вполне конкретная?
🐴
у нее есть инстанс?
Sergey
конкретная фабрика которая делает абстракции
🐴
почему тогда не назвать ее просто ButtonFactory?
Sergey
> у нее есть инстанс? хз, я обычно это делаю в статическом методе в базовом классе
Sergey
почему тогда не назвать ее просто ButtonFactory?
норм название для абстрактной фабрики че
Sergey
у меня к тебе встречный вопрос
Sergey
почему ты не назовешь ProductRepository не как Catalog
Sergey
?
Sergey
"прудукты хранятся в каталоге" звучит как-то логичнее с точки зрения бизнеса нежели "продукты лежат в репозитории продуктов"
🐴
а почему я не назову? может и назову. просто Repository имеет некую дополнительную смысловую нагрузку
🐴
ассоциации в голове всплывают
Sergey
точно так же Abstract имеет некую смысловую нагрузку)
Sergey
которая несет ровно ту же 0-вую ценность
🐴
ну не
Sergey
ну да)
🐴
Catalog может быть каталогом кнопок, а может быть каталогом лягушек
Sergey
ты сразу будешь думать "о репозиторий... доктрина... дата мэппер... запихну туда findProductsWithComments
🐴
а ProductRepository понятно что хранит продукты
Sergey
Catalog может быть каталогом кнопок, а может быть каталогом лягушек
каталог в контексте e-comm солюшена не может быть "каталогом кнопок"
Sergey
хотя может и может но тогда "кнопка" это продукт в каталоге)
🐴
ну да
Kirk
фронтендом запахло
Sergey
я это к тому что разработчики думают не в терминах бизнеса
Sergey
как правило
Sergey
и это заставляет их обзывать вещи как им удобно
🐴
фронтендом запахло
просто классический пример с кнопками
Sergey
Ну, не соглашусь
я не про всех
Sergey
я про подавляющее большинство
Sergey
и еще большее количество людей обзывая что-то SomethingInterface делают это на автомате
Sergey
ну то есть их лет 10 назад так научили и они с тех пор так делают
Sergey
привычка
Sergey
знаете же эксперемент с обезъянками и бананом?
Sergey
https://dezinfo.net/images3/image/02.2012/obezyan/1003.jpg
Sergey
Я стараюсь определить оптимальный уровень абстракции для требований бизнеса и на основании этого проектирую уже. Конечно до ddd лично мне далековато, но пока не жалуюсь
Sergey
а бизнесу нужны твои абстракции?)
Не, я ж лично для себя и для команды. Чтоб архитектуру строить
Sergey
И чтобы не получилось 800 уровней наследования
Sergey
Фаьрик тыщщи, паттерн на паттерне и все такое
fink3L
мой подход не приносит пользы
Sergey
Не, я ж лично для себя и для команды. Чтоб архитектуру строить
я понимаю, я к тому что.... а ты уверен что с точки зрения эффективности это правильно? (хотя я не видел код потому ничего не могу судить)
fink3L
я делаю один огромный метод, а потом думаю как из этого ооп сделать. У всех же так было?)
Sergey
почитай про функциональную абстракцию