Java Reference
In-Depth Information
4.9.4 Einsatzgebiete
Die Schablonenmethode setzt voraus, dass mehrere Arbeitsschritte in mehreren Klas-
sen gleichartig sind.
Das Muster der Schablonenmethode ist in allen objektorientierten
Frameworks vorzufinden, weil damit ein hohes Maß an Wieder-
verwendbarkeit erreicht werden kann.
Ein Framework gibt die abstrakte Klasse vor und implementiert darin die grundlegen-
den Algorithmen. Der Nutzer des Frameworks muss die vom Framework geforderten
Einschubmethoden implementieren. Durch den Einsatz der Vererbung kann die bereits
im Framework implementierte Funktionalität wiederverwendet werden.
Anwendungsbeispiel
Im Folgenden soll ein konkretes Beispiel betrachtet werden (siehe Bild 4-29). Es sollen
verschiedene Klassen zur Sammlung von Objekten implementiert werden. Unabhängig
von der verwendeten Datenstruktur (Liste, Baum etc.) soll festgestellt werden können,
ob sich ein bestimmtes Objekt in der Sammlung befindet. Der dazu benötigte Algorith-
mus kann als Schablonenmethode contains() in einer gemeinsamen Basisklasse
definiert werden. Jetzt das bereits erwähnte Bild:
Collection
{abstract}
+ contains (Object o) {leaf}
# hasMoreElements() {abstract}
# nextElement() {abstract}
LinkedList
Stack
# hasMoreElements()
# nextElement()
# hasMoreElements()
# nextElement()
Bild 4-29 Container-Klassen zur Veranschaulichung der Schablonenmethode
Die Methode contains() der Klasse Collection ist vollständig implementiert und
benutzt die beiden abstrakten Methoden hasMoreElements() und nextElement()
derselben Klasse. Der folgende Programmausschnitt zeigt eine mögliche Implementie-
rung der Methode contains() :
abstract class Collection
{
// Schablonenmethode
final boolean contains (Object o)
{
Search WWH ::




Custom Search