Java Reference
In-Depth Information
while ( hasMoreElements() )
{
if (o.equals ( nextElement() )
return true;
}
return false;
}
// Einschubmethoden
abstract protected boolean hasMoreElements();
abstract protected Object nextElement();
}
Die abstrakten Methoden hasMoreElements() und nextElement() werden hier
verwendet, obwohl noch keine konkreten Implementierungen vorhanden sind. Die Im-
plementierung wird an die Subklassen delegiert. Die Subklassen können dabei den Al-
gorithmus der Methode contains() mitbenutzen. Sie müssen den Algorithmus nicht
nochmals implementieren. Die von der abstrakten Basisklasse abgeleiteten Klassen
implementieren die Einschubmethoden in Abhängigkeit von der jeweiligen Datenstruk-
tur der speziellen Ausprägung der Collection.
Einschubmethoden werden beispielsweise dann gebraucht, wenn in der Schablonen-
methode Objekte erzeugt werden müssen, deren Typ aber noch nicht festgelegt wer-
den kann. Die Objekterzeugung wird dann in die Implementierung der Einschubmetho-
den verlagert - analog zum Muster Fabrikmethode, bei dem die Objekterzeugung in
die Implementierung der Fabrikmethode in einer Unterklasse verlagert wird.
4.9.5 Bewertung
4.9.5.1 Vorteile
Die folgenden Vorteile werden gesehen:
x Durch das Muster Schablonenmethode wird eine Basisklasse nicht von ihren Unter-
klassen abhängig, obwohl die Basisklasse Einschubmethoden aufruft, die in den
Unterklassen implementiert sind. Der Mechanismus des Musters Schablonenmetho-
de führt zu einer Invertierung der Abhängigkeiten ( Dependency Inversion ).
x Vorteilhaft ist, dass der Algorithmus bereits in der Basisklasse auf grobem Niveau
festgeschrieben werden kann, ohne die Details der Implementierung zu kennen. Es
besteht somit die Möglichkeit zur Abstraktion von Verhalten.
x Die Schablonenmethode gewährleistet ein hohes Maß an Wiederverwendung der
Spezifikation. Die Subklassen benutzen dabei den Algorithmus der Schablonenme-
thode mit und implementieren ihn nicht nochmals, d. h. sie überschreiben ihn nicht.
4.9.5.2 Nachteile
Aus diesem Verhaltensmuster resultieren - wenn sein Einsatz Sinn macht - keine
Nachteile.
Search WWH ::




Custom Search