# Überschriebene Methoden



## weak_reference (14. Apr 2009)

Hallo,

es gibt in meiner Firma die Anforderung eine zentrale Methode, nennen wir sie doProcessRequest(), für die Client-Serverkommunikation mit Logausgaben zu versehen.

Diese Methode wird durch ein Interface vorgegeben, welche von ca. 100 Modulklassen implementiert wird. 

Die Log-Ausgabe soll in einer Standardimplementierung von doProcessRequest() stattfinden, so dass nicht alle 100 Module angepasst werden müssen. Es bleibt aber immernoch die Notwendigkeit, in jeder überschriebenen Methode von doProcessRequest() einen super.doProcessRequest() Statement einzufügen um die Logfunktionalität aufzurufen. Das ist unschön und ich frage mich, ob es eine elegantere Lösung gibt (AOP kommt nicht in Frage), die die Änderung nur an einer zentralen Stelle notwendig macht.

Habt ihr eine Idee? Wäre für alle Vorschläge dankbar!

Mfg
weak_reference


----------



## SlaterB (14. Apr 2009)

Methode in Basisklasse final machen, 
ruft neben Logging doProcessRequest2() auf, welche abstrakt ist


----------



## maki (14. Apr 2009)

Mit dem Template Pattern (Template method pattern - Wikipedia, the free encyclopedia) gäbe es die Möglichkeit, allerdings müsstest du wissen ob alle Klassen welche das Interface implementieren auch von einer gemeinsamen Basisklasse erben könnten.

Die sauberste Lösung wäre aber AOP.


----------

