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.