Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed

文書の過去の版を表示しています。


Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed

the Definition of Template Method Pattern

템플릿 메소드 패턴의 정의는 다음과 같습니다.

 템플릿 메소드 패턴에서는 메소드에서 알고리즘의 골격을 정의합니다.
 알고리즘의 여러 단계 중 일부는 서브클래스에서 구현할 수 있습니다.
 템플릿 메소드를 이용하면 알고리즘의 구조는 구대로 유지하면서 서브
 클래스에서 특정단계를 재정의할 수 있습니다.

이 패턴은 간단하게 말하자면 알고리즘의 틀을 만들기 위한 것입니다. 틀(템플릿)이란 무엇을 뜻할까요?
그냥 메소드에 불과합니다. 조금 더 구체적으로 얘기하자면, 일련의 단계들로 알고리즘을 정의한 메소드입니다.
여러 단계 가운데 하나 이상이 추상 메소드로 정의되며, 그 추상 메소드는 서브클래스에서 구현됩니다.
이렇게 하면 서브클래스에서 일부분을 구현할 수 있도록 하면서도 알고리즘의 구조는 바꾸지 않아도 되도록 할 수 있습니다.

클래스 다이어그램을 한번 살펴봅시다.

snippet of AbstractClass

이번에는 추상 클래스에 들어갈 수 있는 메소드의 형식에 대해 조금 더 자세하게 살펴봅시다.

abstract class AbstractClass{
    final void templateMethod(){
         primativeOperation1();
         primativeOperation2();
         concreteOperation();
    }
 
    abstract void primitiveOperation1();
 
    abstract void primitiveOperation2();
 
    final void concreteOperation(){
       //concreteOperation() 코드
    }
 
    void hook() {}
}

QR Code
QR Code study:java:design_pattern:template_method (generated for current page)