Dominio valore di progetto guidato oggetto, come garantire un valore unico
-
22-10-2019 - |
Domanda
Sto costruendo un creatore questionario. Un questionario è costituito da sezioni, le sezioni sono costituite da pagine e pagine sono costituite da domande. Questionario è la radice aggregato.
Le sezioni, le pagine e le domande possono avere quelli che vengono chiamati i codici brevi che dovrebbe essere unico all'interno di un questionario (ma non unico all'interno del database di conseguenza, essi non sono strettamente un'identità). Avevo intenzione di fare lo shortcode un oggetto di valore e ha voluto includere la regola di business che dovrebbe essere unico all'interno del questionario, ma sono sicuri di come assicurare che. La mia comprensione è che l'oggetto valore non deve accedere al livello repository o servizio in modo come fa a scoprire se è unico?
Grazie per qualsiasi aiuto.
Darren
Soluzione
Si potrebbe assegnare la responsabilità di generare codici brevi per l'aggregato questionario. Esso può essere basata su un semplice contatore incorporato in oggetto questionario. Ogni entità che vogliono creare uno shortcode sarebbe chiamare il metodo NextShortCode () la sua contenente del questionario per ottenere la prossima (nel campo di applicazione del questionario corrente) Valore shortcode unico.
Altri suggerimenti
Chiaramente, si sta andando ad avere bisogno di un campo di PK nel database. Come si implementa che dipende da voi, ma se si trattasse di me, mi piacerebbe portare il campo PK nel vostro oggetto valore in modo che esso viene gestito automaticamente.
Si consiglia di utilizzare qualcosa come un Guid o UUID. Esattamente come si potrebbe generare uno si dipenderà da quale lingua si sta utilizzando per la vostra applicazione però.