In der Erläuterung des AbstractFactory-Musters sehen wir häufig Beispiele für das Übergeben einer Zeichenfolge als Laufzeitargument oder für ein If-else-Urteil mit einem Flag.
In der persönlichen Entwicklung ist es Ihnen vielleicht egal, weil Sie alles wissen.
Wenn es jedoch anderen Teams in der Teamentwicklung als Modul zur Verfügung gestellt wird,
Woher wissen Sie, welche Factory von dem von Factory bereitgestellten Team generiert werden kann?
Ich denke, die Methode besteht darin, den Code entweder selbst oder bei der für den Code verantwortlichen Person auf der Fabrikseite zu überprüfen.
Die Person, die auf der Fabrikseite verantwortlich ist, ob für die Code-Person im Kunden,
Ob es daran liegt, dass es mühsam ist zu antworten, wenn Sie sich fragen,
** Bitte beachten Sie, dass "Enum klar zeigen kann, was generiert werden kann" **.
Factroy-Generierungsmethode, die Sie oft sehen
Codebeispiel zur Beurteilung durch Übergabe des Klassennamens als Zeichenfolge
Ich denke, das hat die folgenden Probleme.
・ Kann man sagen, dass die angegebenen Zeichenfolgen nicht unterschiedlich sind?
・ Ist es möglich, dass der Fall korrekt ist?
・ Ist es nicht möglich, eine Fabrik anzurufen, die überhaupt nicht existiert?
Beispiel für die Bestimmung der Factory, die vom Flag generiert werden soll
Ich denke, das hat das gleiche Problem wie bei Strings.
Unter dieser Beurteilungsbedingung wird FactroyY auch für alles außer 0 generiert.
Es beinhaltet die Möglichkeit, dass Factory Y unerwartet generiert wird.
Beispiel für die Verwendung von Enum
Bei der Implementierung mit Enum wird explizit der zu erstellende Factroy angegeben und es wird keine nicht vorhandene Factory erstellt.
* Der folgende Code ist meine eigene Verbesserung des Abstract Factory-Musters von TECH SCORE.
Bitte geben Sie an, dass dies nichts mit TECH SCORE zu tun hat. </ span>
8. AbstractFactory-Muster
Use.java (Client) h3>
Es wird durch Angabe von Recipe (Factory-Klasse) in HotpotType (Enum) generiert.
HotpotType.java (Aufzählung zum Generieren der Factory) h3>
Hier kann die Factory definiert werden, die generiert werden kann.
Wenn Sie Sukiyaki angeben, wird das Sukiyaki-Rezept generiert.
Recipe.java (Factory-Klasse) h3>
Die Factory-Generierung wird an HotpotType delegiert, sodass Sie sich nur auf die abstrakte Implementierung konzentrieren können.
Vorteile des Generierens mit Enum
- Da nur in Enum vorhandene Factroy generiert werden können, wird keine fehlerhafte Factory generiert.
-Für die Teamentwicklung muss der clientseitige Code-Manager nicht wissen, was die Klasse Generateable Factory ist.
Wenn die Factory-Klasse fehlt, müssen Sie nur den für die Factory-Seite zuständigen Programmierer fragen.
-Einfaches Hinzufügen von Factory.
Sie müssen die if-Anweisung nicht ändern, da Sie nur die für Enum erforderliche Factory-Klasse hinzufügen müssen.
Wenn Sie das Programm selbst schreiben, müssen Sie nicht darüber nachdenken,
** Wenn Sie als Team arbeiten und für die Aufteilung der Module verantwortlich sind
Durch dieses Denken kann die Leichtigkeit des Wandels verbessert und die Modularisierung erleichtert werden. ** **.