2012-03-11 9 views

答えて

2

Wikipedia article for the Template method patternにはかなり明確なJavaの例があります。

パターンの基本的な概念は、コードの可変部分が別々の方法で分割されていることです。これにより、共有パーツはスーパークラスに残り、子孫クラスは可変パーツに対応するメソッドを実装し、必要に応じて異なる動作を提供します。あなたは、パターンの一般的に受け入れられて実装に近くに滞在したい場合

、あなたのコードは、これらの線に沿って次のようになります。この場合には、必要な動作の具体的な実装が匿名であることを

public abstract class TemplateMethodLoop<T> { 
    public abstract void execute(T t); 

    public void loop(List<T> array) { 
     for (T t : array) { 
      this.execute(t); 
     } 
    } 
} 

public class TemplateMethodPatternClient { 
    public void stringListPrinter(List<String> stringList) { 
     new TemplateMethodLoop<String>() { 
      public void execute(String string) { 
       System.out.println(string); 
      } 
     }.loop(stringList); 
    } 
} 

注意stringListPrinter()メソッド内の内部クラスTemplateMethodLoopスーパークラスに拡張されています。

関連する問題