Progetta schemi per evitare di rompere l'SRP mentre esegui una pesante registrazione dei dati

2

Una classe che esegue sia i calcoli che la registrazione dei dati * sembra avere almeno due responsabilità. Dato un sistema per il quale le specifiche richiedono una pesante registrazione dei dati, che tipo di schemi di progettazione o modelli architettonici possono essere utilizzati per evitare di sovraccaricare tutte le classi con chiamate di registrazione ogni volta che calcolano qualcosa?

Il pattern decoratore deve essere utilizzato (ad esempio Interpolator decorato a LoggingInterpolator ), ma sembra che risulterebbe in una situazione difficilmente più desiderabile in cui quasi tutte le grandi classi avrebbero bisogno di essere decorate con la registrazione.

* Nota : quando ho scritto questo, stavo lavorando in un contesto in cui si chiamava logging, ma in realtà stava scrivendo su un database. Non mi riferisco in particolare all'emissione di messaggi di debug o di errore in un log4net log o simili.

    
posta Kazark 18.12.2012 - 00:25
fonte

1 risposta

2

Il mio primo pensiero è di considerare le parti computazionali come un modello e le parti di registrazione come una vista. È quindi possibile gestire le attività del flusso di lavoro di ciascuna utilizzando un modello di controller o presentatore. Sostituisci altri nomi di fantasia per ogni parte, se lo desideri, ma vedo tre parti.

Quindi, il controllore avvia il calcolo, recupera il risultato e lo inoltra al registratore. Le parti di calcolo e registrazione rimangono ignoranti l'una dell'altra e la logica di alto livello del tuo lavoro principale è espressa in un unico punto.

    
risposta data 18.12.2012 - 02:49
fonte