Voglio aggiungere un meccanismo di registrazione al mio progetto, ma temo che il codice di registrazione venga diffuso ovunque.
Ho quindi avuto l'idea di avere solo una classe Logger
responsabile della scrittura di informazioni rilevanti nel log e tutte le altre classi A, B,
... avendo un oggetto Logger e semplicemente chiamando la corrispondente funzione di registrazione in quella Classe Logger invece di implementare la funzione di registrazione nelle classi A, B,
direttamente.
class A {
public:
Logger logger;
...
void foo {
...
logger.log(this);
}
};
...
class Logger {
public:
void log(A a);
void log(B b);
...
};
È considerata una buona pratica o un modo pulito di fare il logging senza ingombrare il codice di produzione?