Softwareengineering
Einfache Hooks und Abstrakte Methoden (Klassen)
Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law
02.12.2015
se_2_hooks.ppt
1
Ursprüngliche Idee: Funktionsparameter

Genauso, wie man Daten als Argumente für Funktionen (Methoden)
mitliefen kann, will man manchmal auch Funktionen von außen
bestimmen (mitliefern)

Beispiel Textverarbeitungsprogramm (einfaches Argument):
void display_on_screen(String input)
erweiterte Funktionalität:
void display_on_screen(String input, function prepare_func)
prepare_func ist eind Methode, die aufgerufen wird, bevor der Input auf
dem Bildschirm dargestellt wird.

Man nennt dies “Funktionsparameter”, es geht in Pascal, Lisp, Scheme,
Haskell, Modula, PHP (mit Kunstgriff), JavaScript, aber nicht in Java.
02.12.2015
se_2_hooks.ppt
2
Funktionsparameter in Java durch überschreiben von
(evtl leeren) Methoden:
- die Methode prepareOutput macht nichts!
- dies ist Absicht, die Methode ist nur dazu da, von einer
Unterklasse überschrieben zu werden.
02.12.2015
se_2_hooks.ppt
3
Beispiel TextProzessor für Schriften von rechts nach
links:
Beim Ableiten der Klasse bestimmt der Entwickler durch
Überschreiben von “prepareOutput”, was getan werden soll,
bevor der Text dargestellt wird.
02.12.2015
se_2_hooks.ppt
4
Will man den Entwickler zwingen, Methoden zu
überschreiben, verwendet man abstrakte Klassen
- abstract Class: Es MUSS eine Unterklasse gebildet werden,
die Klasse kann selbst nicht instanziiert werden
- abstract Methode: Die Methode MUSS überschrieben werden
Nachteil: Man bietet keine default-Methoden an
02.12.2015
se_2_hooks.ppt
5

void display_on_screen(String input, function prepare_func)