Head First設計モード学習ノート(九)テンプレート方法モード

1050 ワード

≪テンプレート・メソッド・モード|Template Method Mode|emdw≫:操作中のアルゴリズムのスケルトンを定義し、いくつかのステップをサブクラスに遅延します.テンプレート・メソッドは、サブクラスがアルゴリズムの構造を変更せずに、アルゴリズムの特定のステップを再定義できるようにします.
 
方法モードの特徴:不変の行為をスーパークラスに移し、サブクラスの重複するコードを除去して彼の優位性を体現する.
不変および可変の動作がメソッドに混在すると、不変の動作がサブクラスで繰り返され、テンプレートメソッドモードは、これらの不変の動作をスーパークラスに移動し、重複コードを回避します.
 
注意:テンプレートメソッドでは、フックを使用してコードのセグメントを実行するかどうかを制御できます.(以下のコードのように、サブクラスはcondition()メソッドを上書きしてaction 2()を実現するかどうかを制御することができる)
 

void doAction(){

action1();

if(condition()){

action2();

}

}

 

boolean condition(){

return true;

}


 
JUnitのTestCaseとそのサブクラスはテンプレートメソッドモードの例である.
 
 

public void runTest() throws Throwable {

setUp();

 

try {

runTest();

}

 

finally {

tearDown();

}

}


 
 
 
JAvaの配列ソートは典型的なテンプレートメソッドである.Sort()