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