Jetzt geben wir einen einfachen Anwendungsfall zur Simulation einer Schinkenproduktionsfabrik. Nachdem Sie eine Fabrikinstanz erstellt haben, müssen Sie ihr nur mitteilen, welche Art von Schinken Sie produzieren möchten Es wird für Sie erstellt:
Pakettest;
Schnittstelle Ham { //Definieren Sie die Schnittstelle zur Unterstützung bei der Implementierung des Fabrikmodus
void show();//Verschiedene von Ham hergestellte Produkte Factory Ham wird die Fähigkeit haben, show()
}
öffentliche Klasse FatoryModule {//Factory-Klasse, die für Produkte vieler verschiedener Arten von Ham verwendet wird
public Ham getHam(String HamType) throws Exception{// Factory-Klasse Die Bewegung des Objekts zur Erzeugung von HAM
if (Hamtype.equals ("HAMA") {
Return New Hama ();
}
Else if (Hamtype.equals ("HAMB" )) {
return new HamB();
AM-Anweisungen unterstützen dies jedoch vorerst nicht und werfen einen Fehler aus
}
Public Static Void Main (String [] ARGS) { //Testcode
FatoryModule fatorymodule = new FatoryModule();
try {
Ham myHam = fatorymodule.getHam("HamB");//Sie können ganz einfach verschiedene Arten von Ham erstellen und die Programmstruktur und Codeänderungen auf ein Minimum beschränken
} Catch (Exception ex) {
ex.printStackTrace();//Ausnahmen sollten weiter behandelt werden
}
}
}
class HamA implementiert Ham { //Ein Produkt, das HamA in der Fabrik produziert
public void show() {
System.out.println("You got a HamA.") ;
}
class HamB implementiert Ham { //Ein weiteres Produkt der Factory HamB
public void show() {
System.out.println("You got a HamB.");
}
class HamC implementiert Ham { // Das dritte von der Fabrik hergestellte Produkt, HamC
public void show() {
System. out.println("You got a HamC.");
}
Durch die Demonstration des Programms habe ich folgende Schlussfolgerungen gezogen:
Da das Fabrikmuster angewendet wird, muss ich nur sagen, dass das Fabrikobjekt für mich welche Art von Ham erzeugt (das heißt, die Parameter in der Methode getHam()). ), und dann kann ich diesen Ham-Typ erhalten, ohne HamX zu schreiben hamX=new HamX(); Wenn Dutzende verschiedener Ham-Objekte benötigt werden Wenn es an verschiedenen Stellen im Programm erstellt wird, erscheint die Verwendung des Factory-Mustercodes einfach und einheitlich. Jeder Ort, der einen anderen Ham erfordert, unterscheidet sich nur in den Parametern von getHam(). Wenn das Programm sonst erweitert und gewartet werden muss, bereiten Dutzende neuer Anweisungen Kopfzerbrechen. Und wenn Sie einen neuen Ham-Typ hinzufügen müssen, müssen Sie ihn nur in der Factory-Klasse hinzufügen.
Weitere einfache Beispiele für JAVA-Factory-Muster finden Sie auf der chinesischen PHP-Website für verwandte Artikel!