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

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

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

20 ответов

11 просмотров

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

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
Мб лучше слушать эвент смены адреса и обновить име...

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

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

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

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
Редактор листа Excel, по сути двумерный массив ячеек. Ячейка - это экземпляр класса, у нее всякие свойства, методы. Проблема в том, что количество используемых строк и колоно...
Sergey Bodrov
2
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Is there a digital way to cut the electricity from a usb in linux? It sounds weird, but it's exactly what I need to do. I tried to simulate the unplug/replug but is not the ...
Eduard Rivas
15
Добавляю 100 тыс слов в TListBox. Перемешаю скролл (от ListBox). После примерно 65536 скролл резко прыгает вверх. Это что за глюк? Как фиксить, кто-нибудь знает?
Eugene Krasnikov (ᴊɪɴ x)
8
generic procedure function test<T>(param: T); type case T of longint: NewT = word; longword: NewT = byte; end; var v1: NewT; Как это можно сделать? Чтобы у меня...
notme
21
Делал задачу вот такую https://stepik.org/lesson/4985/step/9?unit=1083 получилось такое https://play.haskell.org/saved/ipKrepqe оно работает, тестов много не писал, но работае...
Fedor
22
Карта сайта