Por ejemplo, tenemos dos objetos de dominio: Célula y Cuerpo (como en células y cuerpos humanos).¿En el Diseño Dirigido por Dominio cuando una entidad se clona a sí misma y lo agrega a su contenedor?
La clase Body es solo una colección de Celdas, p.
class Body
{
IList<Cell> cells;
public void AddCell(Cell c) { ... }
public void RemoveCell(Cell c) { ... }
}
La celda tiene un método de división, que internamente crea un clon de sí mismo, p.
Class Cell
{
public Cell Split()
{
Cell newCell = new Cell();
// Copy this cell's properties into the new cell.
return Cell;
}
}
Ahora, en DDD cuando las divisiones celulares deben:
- La célula añadir la celda recién creado para el Cuerpo (lo que significaría que cada objeto de la célula mantiene una referencia a su cuerpo que contiene)?
- ¿O debería la capa de servicio que recibió la solicitud del usuario intitial llamar a Split, recoger la celda devuelta y agregarla al cuerpo? (se siente como un diseño más anémico usando controladores en lugar de objetos de dominio)
- ¿O debería el cuerpo contener un método SplitCell?
Gracias de antemano.
La división de celdas crea una copia exacta de la celda con digamos 1 diferencia menor. Otro actor dentro del sistema que solo conoce las celdas desencadena la división. Este actor no sabe realmente sobre la existencia del cuerpo. – ng5000
El ejemplo raro es más fácil de explicar que el dominio real que estoy modelando. Intenté explicarlo con un simple ejemplo abstracto del problema al que me estoy enfrentando. – ng5000