Например, у нас есть два предметных объекта: Клетка и Тело (как в клетке и теле человека).
Класс Body - это просто набор ячеек, например
class Body
{
IList<Cell> cells;
public void AddCell(Cell c) { ... }
public void RemoveCell(Cell c) { ... }
}
Ячейка имеет метод Split, который внутренне создает свой клон, например,
Class Cell
{
public Cell Split()
{
Cell newCell = new Cell();
// Copy this cell's properties into the new cell.
return Cell;
}
}
Теперь, в DDD, когда ячейка расщепляется, следует:
- Клетка добавляет вновь созданную ячейку в тело (что будет означать, что каждый объект ячейки содержит ссылку на свое содержащее тело)?
- Или должен ли сервисный уровень, получивший первоначальный запрос пользователя, вызвать Split, собрать возвращенную ячейку и добавить ее в тело? (похоже на более анемичный дизайн с использованием контроллеров, а не объектов домена)
- Или тело должно содержать метод SplitCell?
Заранее спасибо.