Design guidato dal dominio. Radice aggregata

1

Ho bisogno di assistenza per la progettazione con DDD.

Ho tre classi, Famiglia, Bambino ed evento. È il modo corretto di modellarlo per avere Child in entrambi gli eventi e Family e rendere Family ed Event una radice aggregata.

La mia domanda è ok avere un'entità come membro di due AggregateRoot?

    public class Child: Entity
    {
     ...properties and methods....
    }

    public class Family : AggregateRoot
    {
        private List<Child> _attendingChildren;

        public void NewChildInFamily(string firstName, string surname)
        {....create a new child and add it to attendingChildren....}
    }

    public class Event: AggregateRoot
    {
       private List<Child> _attendingChildren;

       public void NewChildAttending(Child attendingChild)
       { ....code to add existing child to attendingChildren....}
    }
    
posta user1653400 15.07.2016 - 06:18
fonte

1 risposta

1

No, questo interrompe l'incapsulamento dell'aggregato, perché Event fa riferimento a Child, che si trova in un'altra radice Aggregate.

Tutti e 3 dovrebbero essere root.

    
risposta data 15.07.2016 - 06:35
fonte

Leggi altre domande sui tag