Tra le altre cose, il CQRS ha la regola che ognuno dei metodi ha una sola responsabilità. Quindi non possiamo avere questo nel modello:
public class Store {
public Item getOrCreateItem(int id)
{
//logic
}
//....
}
e questo nel controller:
Store store = new Store();
Item item = store.getItem(1);
Dobbiamo avere questo nel modello:
public class Store {
public Item createItem()
{
//logic
}
public Item getItem(int id)
{
//logic
}
//....
}
che porta a ciò nel controller:
Store store = new Store();
Item item = store.getItem(1);
if (item !== null) {
Item item = store.createItem();
}
Ma ora abbiamo molto codice nel controller ...
C'è un modo migliore per separare i metodi piuttosto che avere il codice aggiuntivo nel controller, che dovrebbe contenere un piccolo codice?