[JAVA] Vorteile der Erzeugung von AbstractFactory-Mustern mit Enum

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) Es wird durch Angabe von Recipe (Factory-Klasse) in HotpotType (Enum) generiert.

HotpotType.java (Aufzählung zum Generieren der Factory) Hier kann die Factory definiert werden, die generiert werden kann. Wenn Sie Sukiyaki angeben, wird das Sukiyaki-Rezept generiert.

Recipe.java (Factory-Klasse) Die Factory-Generierung wird an HotpotType delegiert, sodass Sie sich nur auf die abstrakte Implementierung konzentrieren können.

Vorteile des Generierens mit Enum

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. ** **.

Klassendiagramm

Github

https://github.com/TakumiKondo/designpattern/tree/master/src/abstractfactory/hotpot

Recommended Posts

Vorteile der Erzeugung von AbstractFactory-Mustern mit Enum
abstraktes Fabrikmuster
Abstraktes Fabrikmuster
Entwurfsmuster ~ Abstrakte Fabrik ~
Von enum vor dem Schmied festgefahren
[Algorithmus] N Zahlen mit einem Intervall von X.