Ho una situazione in cui alcuni comandi utilizzano alcuni metodi comuni. Questi sono stati originariamente sviluppati in un unico comando e ora sono utili per altri comandi, possono essere statici e autonomi.
public Command1 : ICommand
{
   // does something specific to some records
   // tidying up fields before they go to the db
   public static void DoSomePreRecordManuipulation(List<record> records)
   {
      //
   }
   public static void DoSomeMoreCommonThings(List<record> records)
   {
      //
   }
   public void Execute()
   {   
       ...
       DoSomePreRecordManuipulation(someRecords);
       ...
       //SaveDbChanges();
   }
}
public command2 : ICommand
{
   public void Execute()
   {
       ...
       BlahCommand.DoSomePreRecordManuipulation(someRecords);
       ...
       SaveDbChanges();
   }
}
 Come puoi vedere dall'esempio sopra,   command2    chiama semplicemente il metodo statico da   command1   . Tuttavia, supponiamo che ci siano altri metodi e alcuni altri comandi coinvolti. 
Caveat : There is little chance of these being used many more times, but this might arise
Inoltre, questi metodi riguardano solo una mano piena di comandi e metodi comuni e sono nella loro sfera di influenza.
Quindi mi chiedo se dovrei.
- Inietta il comando principale in altri comandi per accedere a questi metodi
 - Rendi statici i metodi e fai riferimento direttamente al comando per i suoi metodi statici
 - crea una classe helper statica in modo che i metodi più comuni (se necessario di nuovo) siano più facili da trovare (e non vadano a fondo nelle profondità di CQRS)
 - crea una classe base per incapsulare la logica (che diventerebbe un po 'ingestibile se è necessaria più composizione
 
I miei pensieri
- sembra un odore
 - sembra difficile da trovare.
 - sembra un po 'troppo categorizzato, è utile averli come aiuto, ma i loro valori sembrano limitati
 - hrmm (forse)