Darf ich dieses Vorlagenmethodenmuster für separate Logik von Protokollierung und Ausnahmebehandlung verwenden oder ist es "schlechte Praxis"?Getrennte Logik von der Protokollierung über das Vorlagenmethodenmuster
Zum Beispiel habe ich diesen Code:
public abstract class Parent {
private final Logger log = LoggerFactory.getLogger(getClass());
public void eat() {
try {
doEat();
} catch (SomeException1 e) {
log.debug("some text");
throw new CustomException1();
}
}
protected abstract void doEat();
public void sleep() {
try {
doSleep();
} catch (SomeException2 e) {
log.debug("some text");
throw new CustomException2();
}
}
protected abstract void doSleep();
}
Und mein Kind Klasse:
public class Child extends Parent {
@Override
protected void doEat() {
//some logic
}
@Override
protected void doSleep() {
//some logic
}}
Ich würde nicht verschiedene Implementierungen von Methoden haben doEat()
und doSleep()
.
Ich möchte wissen, ob es das wert ist und es ist "schlechte Praxis" oder nicht.
Logging ist eine Querschnitt betreffen, und als solche wird unter Verwendung von typischerweise behandelt [AOP] (https://en.wikipedia.org/wiki/Aspect-oriented_programming). – jaco0646