modèle de rappel java

Un simple exemple de modèle de rappel en java

Chaîne ・ CamelCase → snake_case ・ Inférieur → Supérieur Prenons le processus d'affichage après

Lorsque vous n'utilisez pas le modèle de rappel

NoCallbackPattern.java


public class NoCallbackPattern {
    /**
     *Serpent de CamelCase_Convertir en cas
     */
    private String camelToSnake(String input) {
        return CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, input);
    }

    /**
     *Convertir de inférieur en supérieur
     */
    private String capitalize(String input) {
        return input.toUpperCase();
    }

    /**
     *Convertir et afficher
     */
    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");
    }
}

Lorsqu'il est écrit avec un modèle de rappel

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");
    }
}

** Si vous écrivez en utilisant le modèle de rappel, vous pouvez voir que la classe CallbackPattern n'a pas besoin d'être modifiée lors de l'ajout du traitement de conversion car la méthode d'impression dépend uniquement de l'interface MyFilter **

Recommended Posts

modèle de rappel java
[Java] Modèle de stratégie
Modèle de conception Java
[Java] Motif singleton
[Java] Modèle d'adaptateur
Mémo de modèle Java
Mon modèle DAO (Java)
Modèle de générateur (Java effectif)
Résumé du modèle de conception Java
[Design pattern] Bibliothèque de base Java
Java
Modèle de stratégie Enum en Java
[Java] Dessine un motif simple
Java
Un exemple simple de rappels en Java
Collection de modèles JNA (Java Native Access)
Modèle de conception Java pour débutant (modèle de méthode d'usine)
Modèle de prototype
Apprendre Java (0)
Étudier Java ―― 3
Java protégé
Motif de souvenir
[Java] Annotation
Module [Java]
Tableau Java
Motif médiateur
Modèle d'itérateur
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Motif composite
Méthodes Java
Méthode Java
java (constructeur)
Tableau Java
[Java] ArrayDeque
Modèle d'observateur
java (remplacement)
Modèle de constructeur
Journée Java 2018
Chaîne Java
Modèle de pont
java (tableau)
Java statique
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Modèle de commande
Java (ensemble)
tri shell java
[Java] compareTo
Étudier Java -5
Modèle de constructeur
java réfléchissant 获 获 举
java (interface)
Mémorandum Java
Modèle de stratégie
Tableau Java