Ho un indirizzo come parte del mio dominio. L'indirizzo conserva informazioni su paese, città, codice postale, via e numero civico. È utilizzato in più luoghi - una società può avere un indirizzo di ufficio, indirizzo di fatturazione e / o indirizzo di corrispondenza; i trasporti hanno indirizzi ai punti iniziale, intermedio e finale; anche un paio di altri posti.
Mi chiedo come gestire correttamente questo modo DDD. L'indirizzo dovrebbe essere un oggetto valore, un'entità o una radice aggregata? Ho visto domande simili ma non sorprendentemente nessuna di queste corrispondeva bene al mio dominio.
Un indirizzo non sa come convalidare se stesso - gli indirizzi dell'azienda possono essere inizialmente quasi vuoti e riempiti in seguito, ma gli indirizzi del trasporto dovrebbero essere sempre completi. Quindi generalmente dipende dall'oggetto che contiene un indirizzo, non dall'indirizzo stesso.
La prossima cosa è che l'indirizzo di una società è completamente indipendente dagli indirizzi di altre società - evento se sono gli stessi in termini di posizione. Inoltre, cambiare l'indirizzo dell'azienda non significa sostituirlo con un altro: è solo un aggiornamento fatto all'oggetto corrente. Inoltre non influisce su nessun altro indirizzo. Questo da solo qualifica l'indirizzo come entità?
Poiché l'indirizzo non può funzionare da solo, non dovrebbe essere AG, giusto?
Forse l'indirizzo dovrebbe essere solo un'interfaccia con CompanyAddress, TransportAddress ecc. che la implementa? Stanno seguendo regole diverse dopotutto ...
Apprezzerei molto la tua opinione su questo. Mi sento come se mi mancasse qualcosa qui, ma non riesco a capire cosa esattamente.