Java Reference
In-Depth Information
for (i = 0; i < anzahlSchrauben; i++)
{
schrauben[i].print();
}
for (i = 0; i < anzahlMuttern; i++)
{
muttern[i].print();
}
}
}
In der Klasse ProduktionsMaschine ist die Arbeitsweise des Musters Abstrakte Fa-
brik zu sehen. Eine Produktionsmaschine besitzt eine Referenz auf die abstrakte Fa-
brik. Mittels der konkreten Fabrik, auf welche die Referenz zur Laufzeit zeigt, werden
konkrete Produkte erzeugt und von der Maschine in eine Schachtel gefüllt. Der Quell-
code der Klasse ProduktionsMaschine enthält keine Bezüge auf konkrete Pro-
dukte:
public class ProduktionsMaschine
{
private IAbstrakteFabrik fabrik = null;
public void setFabrik (IAbstrakteFabrik fabrikRef)
{
this.fabrik = fabrikRef;
}
public void fuelleSchachtel (Schachtel schachtel)
{
int i;
for (i = 0; i < schachtel.anzahl(); i++)
{
schachtel.legeSchraubeHinein (fabrik.erzeugeSchraube());
schachtel.legeMutterHinein (fabrik.erzeugeMutter());
}
}
}
Mit Hilfe der Klasse TestProduktion wird die Arbeitsweise einer einzigen Produkti-
onsmaschine getestet und geprüft, ob Schachteln mit den Produkten nur einer ein-
zigen Produktfamilie erzeugt werden. Die Testklasse enthält ein Objekt der Klasse
ProduktionsMaschine und weist diesem Objekt zuerst eine konkrete Fabrik (In-
stanz von KonkreteFabrikM6 ) für die Erzeugung zu. Im nächsten Schritt wird die
Maschine aufgefordert, eine Schachtel zu füllen. Anschließend wird der Inhalt der
Schachtel angezeigt.
Im zweiten Teil des Programms werden diese Schritte wiederholt. Allerdings wird die
Referenz der Produktionsmaschine mit Hilfe der Methode setFabrik() auf ein Ob-
jekt der Klasse KonkreteFabrikM10 gesetzt. In der Programmausgabe ist zu sehen,
dass daraufhin nur Produkte der Produktfamilie mit M10-Gewinde erzeugt und in eine
Schachtel verpackt werden. Hier die Klasse Testproduktion :
Search WWH ::




Custom Search