-
[JAVA/디자인패턴] 템플릿 메서드(Template Method)Language/Java 2021. 6. 6. 19:10
템플릿 메서드(template method)- 추상 메서드나 구현된 메서드를 활용하여 코드의 흐름(시나리오)을 정의하는 메서드
- final로 선언하여 하위 클래스에서 재정의 할 수 없도록 한다.
- 추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의하고, 하위 클래스에서 다르게 구현되어야 하는 부분은 추상 메서드로 선언하여 하위 클래스에서 구현하도록 한다.
- 프레임워크(framework)에서 많이 사용되는 설계 패턴
템플릿 메서드 예시
- Car.java
- AICar.java
- ManualCar.java
- CarTest.java
<실행결과>
자동차의 시동을 켭니다.
자율 주행을 합니다.
자동차가 스스로 방향을 바꿉니다.
자동차가 장애물 앞에서 스스로 멈춥니다.
자동차의 시동을 끕니다.
============================
자동차의 시동을 켭니다.
사람이 운전을 합니다.
사람이 핸들로 방향을 바꿉니다.
브레이크를 밟아서 정지합니다.
자동차의 시동을 끕니다.
fianl 예약어- final 변수: 값이 변경될 수 없는 상수
=> public static final double PI = 3.14;; - final 메서드: 하위 클래스에서 재정의 할 수 없는 메서드
- final 클래스: 상속할 수 없는 클래스
'Language > Java' 카테고리의 다른 글
[JAVA] Object 클래스와 Class클래스 (0) 2021.06.07 [JAVA] 인터페이스(interface) (0) 2021.06.07 [JAVA] 추상 클래스(abstract class) (0) 2021.06.06 [JAVA] 다형성(polymorphism)과 다운 캐스팅(downcasting) (0) 2021.06.05 [JAVA] 클래스 상속 (0) 2021.06.05