템플릿 메소드 패턴은 다음과 같이 정의됩니다.
알고리즘의 골격 또는 단계는 방법으로 정의되며 일부 단계는 구현을 위해 서브 클래스로 지연됩니다. 템플릿 방법을 사용하면 서브 클래스가 알고리즘 구조를 변경하지 않고 알고리즘의 일부 단계를 재정의 할 수 있습니다.
템플릿 메소드는 기본 클래스에서 작동 프로세스 시퀀스를 정의하여 단계를 순서대로 수행 할 수 있습니다. 일부 단계의 일부 구현은 기본 클래스에서 선언되었으며 일부 변경 단계의 특정 구현은 하위 클래스로 넘겨져 구현하여 일부 단계가 서브 클래스로 지연됩니다. 템플릿 방법의 가장 큰 이점 중 하나는 전체 알고리즘의 실행 단계를 제어하여 특정 엄격한 순서로 비즈니스 프로세스를 실행하도록 설정할 수 있다는 것입니다.
이 메소드는 알고리즘을 일련의 단계로 정의하며, 서브 클래스가 사용자 정의 구현을 수행하려는 모든 단계는 추상 방법으로 정의됩니다. 추상 기본 클래스의 특징은 템플릿 메소드가 일반적으로 최종으로 설정되어 서브 클래스가 알고리즘의 단계를 덮어 쓰는 것을 방지하고, 기본 클래스에서 직접 동일한 작업 또는 단계 중 일부를 구현하고, 변경 단계 중 일부를 추상 및 하위 클래스로 설정합니다.
Java 구현 예
클래스 다이어그램 :
/ *** 비즈니스 프로세스 템플릿, 기본 프레임 워크 제공*/ Public Abstract Class Basetemplate {public acpract void part1 (); 공개 초록 void part2 (); 공개 초록 void part3 (); // 실험 결과를 엄격하게 실험하기 위해 최종 void USETEMPLATEMETHOD () {part1 (); part2 (); Part3 (); }} / ** * 템플릿 구현 방법 1 */ public class templetemethed는 basetemplate {@override public void part1 () {system.out.println ( "템플릿 메소드 1"); } @override public void part2 () {system.out.println ( "템플릿 메소드 2"); } @override public void part3 () {system.out.println ( "템플릿 메소드 3"); }} / ** * 템플릿 구현 방법 2 * @Author Stone * */ public class templatemethod2 확장 {@override public void part1 () {system.out.println ( "템플릿 메소드 11"); } @override public void part2 () {system.out.println ( "템플릿 메소드 22"); } @override public void part3 () {system.out.println ( "템플릿 메소드 33"); }} 공개 클래스 테스트 {public static void main (String [] args) {basetemplate tm = new templatemethod (); tm.USETEMPLATEMETHOD (); System.out.println ( ""); Basetemplate tm2 = 새로운 templatemethod2 (); tm2.usetemplatemethed (); }}인쇄:
템플릿 방법 1 템플릿 방법 2 템플릿 방법 3 템플릿 방법 11 템플릿 방법 22 템플릿 방법 33