È giusto riferirsi all'oggetto di proprietà di root aggregate direttamente in questo caso?

2

Mentre cerco di progettare classi basate su principi DDD, sono abbastanza confuso per questo particolare "modello". Ad esempio, ScholarshipProgram contiene molti Cycle . Sembrano essere aggregati per me. Ma Student si applica solo a Cycle non ScholarshipProgram . Dovrei progettarlo in questo modo:

QuestosembraspezzareilprincipiodiaggregazioneinDDD.SedevoseguireDDD,potreiprogettarlocomequalcosadeltipo:

MamentrequestosegueiprincipidelDDD,masentocheèunpo'innaturale.DovedovreimettereilmetodopergestireCycleperuncertoScholarshipProgramcomecreareunnuovociclo,duplicareilcicloesistente,ottenerel'ultimocicloperunprogramma,ecc.

Qualèl'adattodeldesignperrisolverequestotipodi"pattern" che è ancora compatibile con DDD?

    
posta DarkVenture 04.07.2016 - 05:28
fonte

1 risposta

2

Se Cycle appartiene solo a un particolare ScholarshipProgram , allora dovrebbe appartenere al ScholarshipProgram aggregato. Se Cycle può far parte di due o più ScholarshipProgram , Cycle dovrebbe essere la sua radice aggregata.

In ogni caso la radice aggregata è il tuo punto di ingresso. Nel primo caso ciò significa che ScholarshipProgram avrebbe i metodi per gestire Cycle s come createCycle(StudentProfile, ..) e duplicateCycle(cycleIdentifier) . Questi metodi si prendono cura delle strutture di dati interne, che potrebbero contenere una raccolta di Cycle s.

    
risposta data 06.07.2016 - 18:39
fonte

Leggi altre domande sui tag