Java-Rückrufmuster

Ein einfaches Beispiel für ein Rückrufmuster in Java

String ・ CamelCase → snake_case ・ Unten → Oben Nehmen wir den Prozess der Anzeige nach

Wenn Sie das Rückrufmuster nicht verwenden

NoCallbackPattern.java


public class NoCallbackPattern {
    /**
     *Schlange aus CamelCase_In Groß- / Kleinschreibung konvertieren
     */
    private String camelToSnake(String input) {
        return CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, input);
    }

    /**
     *Von unten nach oben konvertieren
     */
    private String capitalize(String input) {
        return input.toUpperCase();
    }

    /**
     *Konvertieren und anzeigen
     */
    public void print(String input) {
        System.out.println(capitalize(camelToSnake(input)));
    }
}

Main.java


public class Main {
    public static void main(String[] args) {
        NoCallbackPattern noCallbackPattern = new NoCallbackPattern();
        noCallbackPattern.print("replaceString");
    }
}

Beim Schreiben mit einem Rückrufmuster

CallbackPattern.java


public class CallbackPattern {
    private List<MyFilter> myFilters;

    public CallbackPattern(List<MyFilter> myFilters) {
        this.myFilters = myFilters;
    }

    public void print(String input) {
        String output = input;
        for (MyFilter myFilter : myFilters) {
            output = myFilter.replace(output);
        }
        System.out.println(output);
    }
}

MyFilter.java


public interface MyFilter {
    String replace(String input);
}

CamelToSnake.java


public class CamelToSnake implements MyFilter {
    @Override
    public String replace(String input) {
        return CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, input);
    }
}

Capitalize.java


public class Capitalize implements MyFilter {
    @Override
    public String replace(String input) {
        return input.toUpperCase();
    }
}

Main.java


public class Main {
    public static void main(String[] args) {
        List<MyFilter> filters = Arrays.asList(new CamelToSnake(), new Capitalize());
        CallbackPattern callbackPattern = new CallbackPattern(filters);
        callbackPattern.print("replaceString");
    }
}

** Wenn Sie mit dem Rückrufmuster schreiben, können Sie sehen, dass die CallbackPattern-Klasse beim Hinzufügen der Konvertierungsverarbeitung nicht geändert werden muss, da die Druckmethode nur von der MyFilter-Schnittstelle abhängt. **

Recommended Posts

Java-Rückrufmuster
[Java] Strategiemuster
Java-Entwurfsmuster
[Java] Singleton-Muster
[Java] Adaptermuster
Java-Muster-Memo
Mein DAO-Muster (Java)
Builder-Muster (effektives Java)
Zusammenfassung des Java-Entwurfsmusters
[Entwurfsmuster] Java-Kernbibliothek
Java
Enum Strategiemuster in Java
[Java] Zeichnen Sie ein einfaches Muster
Java
Ein einfaches Beispiel für Rückrufe in Java
JNA-Mustersammlung (Java Native Access)
Java-Anfänger-Entwurfsmuster (Factory-Methodenmuster)
Prototypmuster
Java lernen (0)
Java studieren ―― 3
Java geschützt
Erinnerungsmuster
[Java] Anmerkung
[Java] Modul
Java-Array
Vermittlermuster
Iteratormuster
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Zusammengesetztes Muster
Java-Methoden
Java-Methode
Java (Konstruktor)
Java-Array
[Java] ArrayDeque
Beobachtermuster
Java (überschreiben)
Builder-Muster
Java Day 2018
Java-Zeichenfolge
Brückenmuster
Java (Array)
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Befehlsmuster
Java (gesetzt)
Java-Shell-Sortierung
[Java] compareTo
Java studieren -5
Builder-Muster
Java reflektierend 获 获 举
Java (Schnittstelle)
Java-Memorandum
Strategiemuster
Java-Array