[Java] Template Callback Pattern
7863 ワード
テンプレートコールバックとは?
テンプレートコールバック・モードを使用すると、変更されていない部分を使用可能にし、変更可能な部分を使用可能にカスタマイズできます.
クライアントは、テンプレートオブジェクトの方法にコールバックを実施することによって提供される.
テンプレート呼び出しメソッドは、プロシージャで指定されたコールバックメソッドを実行し、戻り値を使用して残りの操作を実行します.図から見るとそうです.
実装を試みる
ハンバーガーを作ろうテンプレートにはパンが含まれています.
私たちはパティをコールバックとして提供します.
Hamburgerクラス(テンプレート)
public class Hamburger {
public void makeBurger(Patty patty){
System.out.println("참깨빵");
//콜백 메서드 호출
String pattyName = patty.getPattyName();
if(pattyName.equals("순쇠고기")){
pattyName += " 패티두장";
} else if(pattyName.equals("특별한 소스")){
pattyName += " 양상추";
}
System.out.println(pattyName);
System.out.println("참깨빵");
}
}
Patty Interface(コールバック)
//함수형 인터페이스라는 것을 명시
@FunctionalInterface
public interface Patty {
String getPattyName();
}
Cook class(クライアント)
public class Cook {
public void cookBurger(){
Hamburger hamburger = new Hamburger();
hamburger.makeBurger(new Patty() {
@Override
public String getPattyName() {
return "순쇠고기";
}
});
// 람다식을 이용해 ()-> "순쇠고기"; 이런식으로 더 간결하게 작성할 수 잇다.
}
}
Test
public class test {
public static void main(String[] args) {
Cook cook = new Cook();
cook.cookBurger();
}
// 결과)
// 참깨빵
// 순쇠고기 패티두장
// 참깨빵
}
スプリングのJdbcTemplateは実際にこのパターンを適用して設計されているそうです.JdbcTemplateは
Connectionなどのリソースを取得します.
クエリーの実行(コールバック)
リソースを再返却します.
Reference
この問題について([Java] Template Callback Pattern), 我々は、より多くの情報をここで見つけました https://velog.io/@cksdnr066/Java-Template-Callback-Patternテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol