template method pattern

Pattern 2008. 4. 25. 21:03

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

상위 클래스에서 처리의 흐름을 정하고 하위 클래스에서 구체적인 내용을 결정하는 디자인 패턴입니다.

예제)

사용자 삽입 이미지

public abstract class AWorker {

             protected final void work() {

                           attendance();

                           doIt();

                           leave();

             }

             private void attendance() {

                           System.out.println("출근하다.");

             }

             private void leave() {

                           System.out.println("퇴근하다.");

             }

             abstract void doIt();

--------------------------------------------------------------

public class Designer extends AWorker {

             void doIt() {

                           System.out.println("디자인 작업함");

             }

--------------------------------------------------------------

public class Programmer extends AWorker {

             void doIt() {

                           System.out.println("프로그램 작업함");

             }

--------------------------------------------------------------

public class Client {

             public static void main(String[] args) {

                           AWorker worker = null;

                           worker = new Designer();

                           worker.work();

                          

                           worker = new Programmer();

                           worker.work();

             }

--------------------------------------------------------------

출근하다.

디자인 작업함

퇴근하다.

출근하다.

프로그램 작업함

퇴근하다.

Posted by 파이팅야
,