Il tuo esempio non è un mutatore, un comando o una query; è semplicemente una funzione . Dovresti conoscere la data odierna per effettuare il calcolo, ma chiamare una query allunga un po 'le cose.
CQRS è un modello architettonico . Affinché CQRS sia pertinente, è necessario che ci sia qualcosa da interrogare e comandare. In genere, sarebbe un database, ma potrebbe essere un dispositivo incorporato come un Arduino o qualsiasi altra cosa. CQRS separa semplicemente la funzionalità di query dalla funzionalità di comando, utilizzando due API separate.
In un'architettura software multilivello, CQRS risiede nel livello di servizio:
Database <--SQL--> DAL <--CRUD--> Service Layer <--Command--> Client
^-----Query------^
Invece dei metodi Crea, Leggi, Aggiorna ed Elimina che operano su singole entità, il Service Layer esporrà metodi come TransferMoney
e GetInvoice
(come esempi di Command e Query, rispettivamente).
Ulteriori letture
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 # su MSDN