Inserimento di informazioni di background in termini di DDD

-2

Recentemente, ho chiesto delle mie difficoltà nel trovare i confini degli aggregati qui e di recente l'ho reinterpretato e rimosso dalle funzionalità aziendali e ora suona come questo:

In molte fonti, vengono forniti esempi di allocazione di aggregati. Molto spesso in questi esempi di un aggregato vengono usati uno o più oggetti comportamentali importanti e diversi oggetti che rappresentano informazioni di base. Ad esempio Order come oggetto comportamentale e PaymentWay , Location come informazioni di sfondo o Delivery oggetto comportamentale e Location , DeliveryWay , Car come sfondo e così via.

La mia domanda è come compilare le informazioni di background se non possiamo essere allegati a specifiche istanze degli aggregati? Voglio dire, mi sembra che non riesco a scrivere come segue: order.AddNewPaymentWay(location) perché non voglio creare un ordine, voglio solo inserire le informazioni di base.

    
posta cephei 24.11.2017 - 11:41
fonte

1 risposta

0

I can not write as follows: order.AddNewPaymentWay(location) because I do not want to create an Order, I just want to fill in the background information.

Lo fai creando oggetti informativi di sfondo ( PaymentWay , Location , DeliveryMethod ) proprio come hai già descritto, o creando un singolo oggetto di dati che contiene tutti di le informazioni di base. Non è necessario un oggetto Order per farlo.

The main goal of the aggregate is to increase the level of abstraction in order to simplify the application. If we split aggregates to entities we will lose this advantage

L'obiettivo principale di aggregare è di combinare insieme dati e logica in modo che possano essere trattati come una singola unità. Potresti avere diverse entità che si combinano insieme per forma questo aggregato, e va benissimo.

Un altro modo di considerare l'aggregato è considerarlo più o meno equivalente a una unità di lavoro o a una transazione di database. quando si esegue il metodo Save() su quell'oggetto aggregato, l'oggetto deve avere tutti i dati e tutta la logica di cui ha bisogno per completare quella transazione in modo atomico, coerente, isolato e duraturo.

    
risposta data 24.11.2017 - 22:39
fonte

Leggi altre domande sui tag