Solid на примере ящика с продуктами
Добавлено: 2019.10.17, 10:25
Здравствуйте,
Возник вопрос по архитектуре.
Есть BOX в котором хранятся продукты. Box_item.
Box_item не может существовать без BOX, то есть в моделе box_item есть аттрибут box_id.
Box не может существовать без box_item. То есть без продуктов. Аттрибут item.
Box содержит произвольное кол-во продуктов.
Верно ли я понимаю что для добавления/удаления продуктов box_item из box нужен отдельный класс (BoxItemManager) который за это отвечает (Единство ответственности)
При создании этого класса BoxItemManager нужно ли в конструктор передавать box_id? Или лучше передавать этот параметр в методе:
BoxItemManager->addItem(Box $box,BoxItem $box_item);
Проблема конструктора в том, что я не могу заранее предопределить класс для работы с box_item. То есть в классе для работы с Box где я буду вызывать добавление продуктов мне придется его создавать через new вместо того что бы добавить в конструктор класса и установить в аттрибут.
Возник вопрос по архитектуре.
Есть BOX в котором хранятся продукты. Box_item.
Box_item не может существовать без BOX, то есть в моделе box_item есть аттрибут box_id.
Box не может существовать без box_item. То есть без продуктов. Аттрибут item.
Box содержит произвольное кол-во продуктов.
Верно ли я понимаю что для добавления/удаления продуктов box_item из box нужен отдельный класс (BoxItemManager) который за это отвечает (Единство ответственности)
При создании этого класса BoxItemManager нужно ли в конструктор передавать box_id? Или лучше передавать этот параметр в методе:
BoxItemManager->addItem(Box $box,BoxItem $box_item);
Проблема конструктора в том, что я не могу заранее предопределить класс для работы с box_item. То есть в классе для работы с Box где я буду вызывать добавление продуктов мне придется его создавать через new вместо того что бы добавить в конструктор класса и установить в аттрибут.