TIL

23.01.06 TIL 템플릿 메서드 디자인 패턴

YunH2 2023. 1. 6. 23:37

오늘 한 일

  • 백준 3문제 풀기 -> 2문제 풀기
  • 자바 강의듣기
  • spring 강의 2개듣기

공부하면서 궁금한 점

템플릿 메서드 디자인 패턴

abstract 메서드와 하위 클래스에서 재정의 할수 없게 만드는 final 메서드가 핵심이다.

final을 꼭 사용하지 않아도 된다.

public abstract class AbstractDisplay {
    public abstract void open();
    public abstract void print();
    public abstract void close();
    // Template method - 알고리즘 구조(처리과정)
    public final void display() {
        open();
        for(int i=0; i<5; i++){
            print();
        }
        close();
        System.out.println();
    }
}

final메서드로 순서(과정)만 정해 놓고
abstract메서드로 하위 클래스에서 재정의해 사용한다

 

public class CharDisplay extends AbstractDisplay {
    private char ch;

    public CharDisplay(char ch) {
        this.ch = ch;
    }
    @Override
    public void open() {
        System.out.print("<<");
    }
    @Override
    public void print() {
        System.out.print(ch);
    }
    @Override
    public void close() {
        System.out.print(">>");
    }
    public static void main(String args[]) {
        CharDisplay ch = new CharDisplay('@');
        ch.display();
    }
}

템플릿 메서드를 사용하면 쓸대없는 코드를 줄일 수 있고

좀더 객체지향적으로 구성 할 수 있다는 장점이 있다.


 내일 할 일

  • 백준 2문제 풀기
  • spring 강의 듣기