Un programma che sto attualmente progettando fa un uso massiccio del database, quasi tutto ciò che l'utente fa altera il database o lo legge. Ora ho un'interfaccia che definisce tutte queste operazioni e una classe di database che la implementa.
Il risultato è che quella classe è enorme, contiene la logica per creare utenti, modificarli, creare eventi, mostrare eventi all'utente, modificare, aggiungere amici, aggiungere elementi a un prodotto, ....
Da un lato posso affermare che questo non viola l'SRP, perché l'intero utilizzo è la comunicazione del database. D'altra parte, questo è un sacco di codice per una classe.
Esistono schemi di progettazione che risolvono questo problema o sono accettabili?