Java Reference
In-Depth Information
Hier das Interface IAuto :
// Datei: IAuto.java
public interface IAuto
{
public int gibKosten();
public void zeigeDetails();
}
Die Klasse Limousine stellt eine zu dekorierende konkrete Komponente dar. Die Me-
thoden geben die Art des Autos sowie dessen Grundkosten aus bzw. zurück:
// Datei: Limousine.java
class Limousine implements IAuto
{
public void zeigeDetails()
{
System.out.print ("Limousine");
}
public int gibKosten()
{
return 35000;
}
}
Die Klasse Cabrio stellt eine weitere zu dekorierende konkrete Komponente dar, die
die gleichen Methoden mit jedoch anderen Werten als die entsprechenden Methoden
der Klasse Limousine besitzt:
// Datei: Cabrio.java
class Cabrio implements IAuto
{
public void zeigeDetails()
{
System.out.print ("Cabrio");
}
public int gibKosten()
{
return 50000;
}
}
Die Klasse Ausstattung stellt einen abstrakten Dekorierer dar, der generischen
Code für alle Ausstattungen enthalten kann. In diesem Beispiel enthält der abstrakte
Dekorierer nur die Deklaration der Instanzvariablen auto , die auf die Schnittstelle
IAuto zeigt, und den Konstruktor zum Setzen dieser Instanzvariablen. Auf ein Über-
schreiben der geerbten Methoden im abstrakten Dekorierer gemäß Kapitel 4.5.3.4
wurde verzichtet, da in diesem Beispiel die konkreten Dekorierer alle Methoden selbst
überschreiben. Hier die Klasse Ausstattung :
Search WWH ::




Custom Search