탬플릿 메서드 패턴

윤주헌's avatar
Aug 14, 2024
탬플릿 메서드 패턴
이전 캡슐화와 이어지니 참고바람

탬플릿?

💡
반복적인 작업을 간편하게 하기 위해 미리 정의된 틀이나 형식
 
자식들이 사용하고 있는 것을 공통적으로 끌어올리는 것이다.
 
공통적인 것이 뭐가 있는가?
입장하기 출석 부르기, 퇴장하기, 수업하기가 있고
강의하기 빼고 다 공통적이다
 
그래서 teacher 추상 메서드를 만들었다
package ex05.teacher; public abstract class Teacher { public abstract void 수업하기(); public abstract void 입장하기(); public abstract void 출석하기(); public abstract void 강의하기(); public abstract void 퇴장하기(); }
이 친구를 상속해서 만들어라
근데 강의하기 빼고 수업, 입장, 출석, 퇴장은 모든 선생님들이 사용한다
 
강의만 누가 어떤 것을 할지 모르겠으니
package ex05.teacher; //이게 바로 탬플릿이다!! jsp로 탬플릿 메서드 패턴 가운대만 바뀌는 것이니까 public abstract class Teacher { public void 수업하기(){ 입장하기(); 출석부르기(); 강의하기(); 퇴장하기(); } public void 입장하기(){ System.out.println("입장하기"); } public void 출석부르기(){ System.out.println("출석부르기"); } public abstract void 강의하기(); public void 퇴장하기(){ System.out.println("퇴장하기"); } }
public abstract void 강의하기(); 재정의 해주고 다른 것은 재정의 할 필요 없음
공통적인 것을 뽑아내면서 만드는 것이 부모다

보통은

부모를 만들고 자식을 만드는게 상속이라는 것인데 반대로 자식을 먼저 만들고 부모 만든다
@@구체적인 것들 중 공통적인 것을 뽑아 내서 사용한다@
 
개발할 때 모든 것을 생각하고 만들지는 않는다 어차피 수많은 변수들이 나오기 때문에
 
위에서 내려오는 명령 모든 것 그대로 만들어라 → 폭포수 모델
 
1~2 2~3 단계별로 쪼개고 각 단계 핵심 로직만 빼고 이걸로 프로토 타입을 만든다 (금방 만든다)
→ 이것의 장점은? 피드백을 빨리 받을 수 있다(협업할 때 필요한 것 방식 등을 알 수 있다.)
 

그림 설명

notion image
 
Share article

code-sudal