Ein einfaches Beispiel für ein Rückrufmuster in Java
String ・ CamelCase → snake_case ・ Unten → Oben Nehmen wir den Prozess der Anzeige nach
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");
}
}
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