Es wird oft gesagt, dass 80% der Zeit damit verbracht wurde, den Quellcode zu lesen, wenn ein Programm während der Wartung und Entwicklung berührt wurde. Daher sollten Sie sich immer des Quellcodes bewusst sein, der gut lesbar und wartbar ist. Wenn es jedoch um Geschäftssysteme geht, gibt es zwangsläufig viele bedingte Zweige, abhängig von der Art des Vertrags, der Art des Geschäftspartners usw. Ich fühle, dass es dazu neigt. Also habe ich gelernt, dass es eine Methode gibt, die Enum als eine der Methoden verwendet, um if-Anweisungen zu reduzieren. Deshalb werde ich sie veröffentlichen, um sie nicht zu vergessen.
Wenn die if-Anweisung viele bedingte Verzweigungen enthält, ist die Verwendung von Enum sehr einfach zu lesen.
SampleEnum.java
public enum SampleEnum {
kind1(new Kind1()),
kind2(new Kind2()),
kind3(new Kind3()),
kind4(new Kind4());
SuperKind kind;
private SampleEnum(SuperKind kind) {
this.kind = kind;
}
public void execute(Object obj) {
kind.execute(obj);
}
}
Bereiten Sie zuerst Enum vor. Beschreiben Sie als Nächstes für jede Eigenschaft die Verarbeitungsklasse, die Sie ausführen möchten, und definieren Sie den Konstruktor. Definieren Sie abschließend die Ausführungsmethode der Verarbeitungsklasse, die Sie ausführen möchten.
Enum selbst wird in diesen 3 Schritten implementiert. Wenn danach ein Typ hinzugefügt wird, fügen Sie einfach eine Eigenschaft hinzu und beschreiben Sie die Verarbeitungsklasse, die Sie für jeden Typ ausführen möchten.
Kind1.java
public class Kind1 implements SuperKind {
public void execute(Object obj){
if(!(obj instanceof String)) {
System.out.println("Bitte geben Sie eine Zeichenfolge als Argument an");
}
System.out.println("In der Klasse Kind1" + obj);
}
}
Die Verarbeitungsklasse, die Sie ausführen möchten. Lassen Sie uns zunächst einfach eine Anweisung an die Konsole ausgeben, die uns mitteilt, dass sie in dieser Klasse ausgeführt wurde. SuperKind ist eine Schnittstelle. Da der Inhalt hier nur die Methode "execute" definiert, werde ich sie weglassen.
Main.java
public class Main {
public static void main(String[] args) {
SampleEnum test1 = SampleEnum.valueOf("kind1");
SampleEnum test2 = SampleEnum.valueOf("kind2");
SampleEnum test3 = SampleEnum.valueOf("kind3");
SampleEnum test4 = SampleEnum.valueOf("kind4");
String string = "Aufzählungstest";
test1.execute(string);
test2.execute(string);
test3.execute(string);
test4.execute(string);
}
}
Dies ist die Hauptklasse. Das Ergebnis der Ausführung hier ist wie folgt.
Enum in der Klasse Kind1 testen
Enum in der Kind2-Klasse testen
Enum in der Kind3-Klasse testen
Enum in der Kind4-Klasse testen
Durch die Implementierung dieser Art der Implementierung hatte ich das Gefühl, dass der Anwendungsbereich breit ist, z. B. das Reduzieren von if-Anweisungsurteilen in der Factory-Klasse und das Reduzieren von if-Anweisungsurteilen, z. B. welcher Geschäftslogikprozess aufgerufen werden soll.
Recommended Posts