Sto lavorando per capire DDD e voglio vedere se questa idea è valida, se è una pratica comune e se ci sono insidie o complicazioni impreviste.
Voglio avere effettivamente una "entità" con una chiave primaria globalmente unica. Voglio usare il sourcing di eventi. Vorrei che diverse classi AR rappresentassero questa "entità" a seconda del contesto.
Ad esempio, in un sito di e-commerce avrei diversi tipi di pagine (pagine di contenuto statico, pagine di categorie, pagine di prodotto). Avrei anche dei prodotti. Dovrebbe esserci una mappatura 1: 1 tra un prodotto e una pagina prodotto, in effetti un sottotipo ProductPage
di Page
con un unico ID univoco che rappresenta sia la pagina che i componenti del prodotto.
Quando nel contesto della gestione dei contenuti, caricherò tutti gli eventi Page
per quell'ID per ricostruire il mio oggetto Page
AR, fare qualsiasi azione Page
correlata e salvare gli eventi Page
appropriati (ex . %codice%).
Quando nel contesto della gestione del prodotto, caricherò tutti gli eventi Page.EditContent()
per quell'ID per ricostruire l'oggetto Product
AR, fare qualsiasi azione Product
relativa e salvare gli eventi Product
appropriati ( ex. Product
).
Quindi, quando generi il mio modello di lettura, caricarei tutti gli eventi per quell'ID per costruire un Product.SetPrice()
e salvarlo nel database del modello letto.
Questo è un modo corretto di fare questo o è una cattiva idea per qualche motivo che non riesco a vedere? O c'è un modo migliore?