본문 바로가기

Java

Day 4. 템플릿 메서드(Template Method) 패턴

템플릿 메서드(Template Method) 패턴?

- 한꺼번에 구체 클래스를 표현하지 않고 추상 클래스의 메서드 패턴을 구현해 놓으면  구체 클래스가 상속받아 자신이 필요한 메서드들을 작성해주는 방식. 문방구의 모양자라고 생각해도 편하다. 흐름(로직)을 부모 클래스가 만들고, 자식 클래스에서 구현하는 방식을 말한다.


템플릿 메서드 예제.

package my.examples.javaexam.my;

public abstract class Action {

//추상 메소드 : 메소드를 선언한다.
// abstract 리턴타입 메소드명(파라미터들);
void init(){ System.out.println("init");}
protected abstract void service();
void destroy(){System.out.println("destroy");}

public final void run(){
init();
service();
destroy();
}
}
package my.examples.javaexam.fw;

import my.examples.javaexam.my.Action;

public class MyAction extends Action {

@Override
protected void service() {
System.out.println("그렇습니다.");
}
}
package my.examples.javaexam;

import my.examples.javaexam.fw.MyAction;
import my.examples.javaexam.my.Action;

public class Exam03 {
public static void main(String[] args){
Action action = new MyAction();
action.run();

}
}

템플릿 메서드를 이해하기 위해서는 package, 접근 제어자, final에 대한 올바른 이해가 있어야 한다.


- 패키지(package) : 비슷한 성격의 자바 클래스들을 모아 넣는 자바의 디렉토리이다.

- 접근제어자 : private, default, protected, public 이 있다. 서술한 역순서대로 보다 많은 접근을 허용한다.     

private : private이 붙은 변수, 메소드는 해당 클래스에서만 접근이 가능하다.

default : 아무것도 붙지않은 기본적인 상태이다.해당 패키지 내에서만 접근이 가능하다.

protected : 동일 패키지 내의 클래스 혹은 해당 클래스를 상속받은 외부 클래스에서만 접근이 가능하다.

public : 어떤 클래스에서도 접근이 가능하다.

- final 클래스 : 상속을 금지시킨다. 자기가 만든 프로그램을 다른 프로그래머가 상속 받아서 사용하는 것을 원하지 않을 때 사용한다.

- final 매소드 : 오버라이딩을 금지 시킨다. 클래스 상속은 시키되 몇 개의 메소드만 재정의해서 사용하는 것을 금지시킨다.


'Java' 카테고리의 다른 글

Day 4. 과제  (0) 2018.12.10
Day 4. 콜바이 레퍼런스  (0) 2018.12.09
Day 3. Maven 이란?  (0) 2018.12.06
Day 3. Maven 프로젝트 생성 및 Java 8 설정  (0) 2018.12.06
windows10에 JDK설치하기  (0) 2018.12.06