2012-03-11 5 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 수퍼 클래스를 확장합니다.