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

Как считаете, инстанс произведённый на фабрике, может знать о фабрике

или это по канонам запрещено?

20 ответов

22 просмотра

а как такое возможно вообще? У вас есть некий объект который создается фабрикой. И есть разные фабрики которые могут по разному создать этот объект. Как он может о фабрике вообще что то знать? каким образом?

ds- Автор вопроса
Alexander Nazarov
а как такое возможно вообще? У вас есть некий объе...

да хоть контекст фабрики передавать в аргументы инициализации инстанса

Ну так зачем это делать? Фабрика из жизни взята ведь. Завезли яблоки, упаковку, и сахар, на выходе получили конфеты. Вы ведь не засунете в конфеты саму фабрику? Да на упаковке конфет может быть обратный адрес фабрики, но это обусловлено требованиями регулятора. А в вашем кейсе зачем это нужно? Зачем контекст фабрики передавать в инстанс? Для какой цели?

ds- Автор вопроса
Alexander Nazarov
Ну так зачем это делать? Фабрика из жизни взята ве...

у меня создание и удаление инстансов происходит в фабрике, условно я удаляю объект так: instance.destroy() и чтоб в методе destroy не создавать ещё одну фабрику, для удаления этого элемента, я использую this.factory.destroyInstance(this)

В целом, можно представить ситуацию, что один агрегат порождает другой агрегат и передаёт в него ссылку на себя

Vlad Petrov
Зачем это может понадобиться?

Например кастомер делает заказ

Dmitry Croft
Например кастомер делает заказ

Там референс часто не нужен

Dmitry Croft
Например кастомер делает заказ

Ты собираешь внутри заказа делать другие заказы через кастомера чтоли? Мб стоит началь просто с передачи айди кастомера, потом по мере надобности добавлять в трансфер обьект что надо.

ds- Автор вопроса
Vlad Petrov
Ты собираешь внутри заказа делать другие заказы че...

скорее всего он имеет ввиду адаптер, соединяющий объекты кастомера и ордера

Vlad Petrov
Ты собираешь внутри заказа делать другие заказы че...

> Ты собираешь внутри заказа делать другие заказы через кастомера чтоли? Не понял немного. Я имел ввиду, что на объект кастомера может быть метод makeOrder() который будет возвращать объект ордер, у которого будет ссылка на кастомера

> Мб стоит началь просто с передачи айди кастомера, потом по мере надобности добавлять в трансфер обьект что надо. Ссылки между агрегатами можно делать по разному, и через id и через объекты. Через объекты более по ddd'ному

Dmitry Croft
> Мб стоит началь просто с передачи айди кастомера...

Ммм.... Оч сомнительное утверждение про передачу обьектами

Если пользователь поменяет адрес в процессе доставки? Данные заказа нужно менять отдельно от данных пользователя

˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Если пользователь поменяет адрес в процессе достав...

Мб лучше слушать эвент смены адреса и обновить именно эту инфу в заказе вместо ссылки на целого кастомера?

Vlad Petrov
Мб лучше слушать эвент смены адреса и обновить име...

то что кто-то говорит "кастомер" не значит что речь идет о каком-то глобальном "кастомере". в одном контексте это одна сущность в другом другая синхронизации данных между контекстами в целом лучше избегать

Sergey P
то что кто-то говорит "кастомер" не значит что реч...

Речь же шла о кастомере, который создавал сам ордер. А о каком то другом, урезанном, кастомере я и сам писал.

Vlad Petrov
Мб лучше слушать эвент смены адреса и обновить име...

Только наоборот, клонировать при редактировании то, что прикреплено к пользователю или к заказу. Но можно влететь в неуправляемую сложность. Лучше при создании заказа создать копию независимую.

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

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

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...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта