Frage an die OOP-Experten. Do-Methoden
-
Hi,
ich hätte mal eine Frage an die OOP-Designer. Ich finde immer öfter in OOP-Projekten ein Konstrukt aus interface, abstract class und final class. Soweit sogut. Was mir jedoch aufgefallen ist, ist dass es irgendwelche Proxy-Methoden gibt. Do-Methoden.
Ich verdeutliche das mal an einem Beispiel, dass wir so in etwa bei unserer Software in der Firma haben:
// Interface interface IUser { // Die Methode die nur benutzt wird. public pure virtual Boolean changePassword (String oldPassword, String newPassword); } // Abstrakte Klasse abstract class AUser { // Die Methode die nur benutzt wird. public Boolean changePassword (String oldPassword, String newPassword) { // Vorbereitungen if (oldPassword.equals (newPassword)) return (true); // Rückgabewert der Methode. Boolean result = false; try { // Diesen Datensatz in der Datenbank verriegeln, bevor er bearbeitet wird. this.lockTupel (); // Do-Methode aufrufen. result = this.doChangePassword (oldPassword, newPassword); } catch (...) { // Weiterleiten... throw; } finally { // Diesen Datensatz in der Datenbank entriegeln. this.unlockTupel (); } return (result); } // Do Nothing. Richtige Implementierung ist in "User". protected virtual Boolean doChangePassword (String oldPassword, String newPassword) { return (false); } } // Finale Implementierung von User final class User extends AUser { // Richtige Implementierung der Passwortänderung. protected Boolean doChangePassword (String oldPassword, String newPassword) { String passwordHash = Crypt.md5 (newPassword); this.setTupelField ("password", passwordHash); return (true); } }
Meine Frage ist nun: Wie heißen diese "Do-Methoden"? Die hatten in der OOP/OOA einen ganz bestimmten Namen, den habe ich damals im Studium gehört, aber leider wieder vergessen.
Proxy-Methoden waren es auf jedenfall nicht, unser Prof hätte uns erschossen, wären wir damit angekommen. Ebenso wenn man sie "Do-Methoden" nennt
Leider die bei uns in der Firma wissen es auch nicht.
Viele grüße und schönen Abend euch noch!
-
Template method
edit: So heißt das Pattern, nach der äußeren Methode. Wie die "do-Methode" heißt, weiß ich nicht, aber vielleicht steht beim Template method pattern was dazu.
-
Hi,
Jop, das hätte ich noch dabei schreiben sollen, dass es sich hierbei um das Template Method Pattern handelt. Mein Versäumniss, sorry.
Ich hab mal auf der englischen Wikipedia geguckt, leider steht dort nur wie man das Pattern "in etwa" anwendet und was es macht. Aber die genaue Bezeichnung der Komponenten (wie z. B. hier diese "Do-Methode") wird dort (mal wieder) nicht beschrieben.
Viele Grüße,
OOP-Coder.
-
"Design Patterns" nennt sie "primitive operations"
-
Stimmt! "primitive operation" und "template method", so hießen die Beiden! Danke euch beiden!