Come dividere una classe

3

Supponiamo di avere una classe Migrator per eseguire migrazioni DB. Ha anche funzionalità per bloccare il db e assicurarsi che nient'altro possa funzionare allo stesso tempo.

Ora ho un'altra funzionalità che richiede anche il blocco del db.

Dovrei:

  • basta rendere lockDb() pubblico?

  • dividi la classe in Migrator e Locker ?

  • dividi la classe in Migrator e Locker e riscrivi anche i test in due test unitari separati anziché in un test di integrazione singolo?

posta JonathanR 07.03.2017 - 12:05
fonte

1 risposta

2

In questo caso la funzionalità di blocco dovrebbe essere implementata sul database stesso.

Altrimenti potresti sostituire la classe Locker con un'altra implementazione e non avere più un blocco garantito.

Se la funzione, ad esempio una transazione è già implementata nel driver di database o componente che si utilizza per accedere al DB, non è necessario estrapolarlo.

Se tuttavia sei stato costretto ad implementare la tua procedura di blocco personalizzata che deve essere condivisa tra i componenti. allora sì dovresti separarlo nella sua libreria

    
risposta data 07.03.2017 - 12:26
fonte

Leggi altre domande sui tag