170 похожих чатов

Подскажите по вопросу для создания сущностей вместо конструкторов я часто использую

статические методы в классе той же сущности, которые называю
CreateFromJSON,
CreateFromXML
CreateFromAny....

получается так
var doc = Document.CreateFromJSON(jsonDoc);



такой приём относится к какому-то паттерну?

15 ответов

10 просмотров

Фабрика / Фабричный метод

Десериализация

Michael
Почему ето фабрика?

Потому что у всех этих типов может быть общий интерфейс

Maxim Rudnev
там только один тип

Json, xml, ... any разве ничего не объединяет ?

Maxim-Rudnev Автор вопроса
Danil S
Json, xml, ... any разве ничего не объединяет ?

всех их объединяет то, что они возвращают один и тот же тип и находятся в одном и том же классе

Maxim-Rudnev Автор вопроса
Danil S
Я про входные параметры

могут быть какие угодно, в зависимости от необходимости. Все методы статические, поэтому в интерфейсе не определяются

Maxim Rudnev
могут быть какие угодно, в зависимости от необходи...

Идея же не в этом, почитайте - https://refactoring.guru/design-patterns/factory-method, там даже пример есть

Maxim Rudnev
могут быть какие угодно, в зависимости от необходи...

Инстанс создаётся не через конструктор , а через метод = фабричный метод , то что там будет процесс десериализации фиг с ним , сама суть в том , что ты получаешь инстанс через метод

Maxim-Rudnev Автор вопроса
Danil S
Идея же не в этом, почитайте - https://refactoring...

Там ситуация когда есть несколько продуктов с одним интерфейсом и под каждый продукт делается отдельный creator В моей ситуации есть один продукт и несколько фабричных методов, находящихся не в отдельных creator, а в том же классе продукта (так как не имеет смысла их выносить в отдельный класс) получается я объединил класс креатора с классом продукта, отсюда возник вопрос, можно ли это назвать фабричными методами

Maxim Rudnev
Там ситуация когда есть несколько продуктов с одни...

Можно. См. родные в .net классы XmlReader и его методы Create, например

Maxim Rudnev
Там ситуация когда есть несколько продуктов с одни...

Там не самые лучшие примеры для понимания, причем часто в примерах стирают грань между фабричным методом и абстрактной фабрикой , суть фабрик по сути в том , что ты не создаёшь экземпляр просто вызвав конструктор , а получаешь его через специальный метод , поэтому он и называется фабричный метод , метод который как бы выпускает что-то

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта