Il modello CQRS può esistere senza schema di mediazione?

2

Il modello CQRS può esistere e / o funzionare senza modello di mediazione?

Voglio dire che ci sono sempre comandi e questi comandi devono essere inviati in qualche modo ai gestori che eseguono qualche logica su di loro.

Significa che il pattern CQRS dipende dal modello del mediatore per funzionare?

Ogni esempio che vedo con CQRS utilizza un modello di mediatore, significa che è parte integrante di questo modello?

Oppure può funzionare senza usare il modello di mediatore?

Ma non ha molto senso allora ...

    
posta Konrad 21.05.2018 - 15:03
fonte

1 risposta

6

Separazione della responsabilità delle query dei comandi (CQRS) separa la lettura e la scrittura in due diversi modelli.

Un'architettura "convenzionale" ha il seguente aspetto:

Un'architetturaCQRSsipresentacosì:

SinoticomeildiagrammaCQRShadueendpointcheservonol'interfacciautente,nonsolouno?

IlmodelloMediatoredefinisceunoggettocheincapsulailmodoincuiuninsiemedioggettiinteragisce.Ilmediatorepromuovel'accoppiamentoliberoimpedendoesplicitamenteaglioggettidiriferirsil'unl'altroeconsentedivariarelalorointerazioneinmodoindipendente.

Ilschemadelmediatoregarantiscecheicomponentinonsichiaminoavicendainmodoesplicito,mainvecelofannoattraversolechiamateaunmediatore.Nell'esempioseguente,MediatorregistratuttiicomponentiequindichiamailorometodiSetState.

publicinterfaceIComponent{voidSetState(objectstate);}publicclassComponent1:IComponent{publicvoidSetState(objectstate){thrownewNotImplementedException();}}publicclassComponent2:IComponent{publicvoidSetState(objectstate){thrownewNotImplementedException();}}//MediatesthecommontaskspublicclassMediator{publicIComponentComponent1{get;set;}publicIComponentComponent2{get;set;}publicvoidChangeState(objectstate){this.Component1.SetState(state);this.Component2.SetState(state);}}

Imediatorisiprestanospontaneamentealmodellodiosservatoreealmodellodiaggregatoredieventi,poichéglieventisonounmodonaturaleperregistrarecomponenticonunmediatore:

SinotiquantoquestodiagrammasimiledelmodellodiosservatoresiasimilealdiagrammadelmodellodiMediatoresopra?

ChecosahaachefareilmodellodimediatoreconCQRS?

Nonmolto,davvero.

Bene,oltrealfattochepuoiusareunmediatoreconCQRSeunpatterndiosservatoreconilmediatoreeprobabilmenteunamezzadozzinadialtrimodellidisoftwareutiliconentrambi.

Ulterioriletture
Segregazione della responsabilità delle query dei comandi di Martin Fowler
< a href="https://msdn.microsoft.com/en-us/library/dn568103.aspx"> Esempio CQRS in C # in MSDN
Comando di segregazione delle responsabilità delle query su Wikipedia
Modello di osservatore su Sourcemaking.com
Aggregatore di eventi (Fowler)

    
risposta data 21.05.2018 - 17:21
fonte