-
Java Design Pattern - 템플릿 메서드 패턴(Template Method Pattern)Language/Java Design Pattern 2022. 11. 22. 10:07
템플릿 메서드 패턴(Template Method Pattern)
템플릿 메서드 패턴이란?
템플릿 메서드 패턴은 여러 클래스에서 공통으로 사용하는 메서드를 상위 클래스에서 정의하고, 다르게 구현해야 하는 세부적인 사항을 하위 클래스에서 구현하는 패턴을 말한다.
코드의 중복을 제거하기 위해 흔히 사용되는 리팩터링 기법이다.
상위 클래스에서 정의하는 부분을 템플릿 메서드라 하고, 템플릿 메서드에서 하위 클래스마다 다르게 구현되어야 하는 부분을 훅이라고 한다.
템플릿 메서드의 구현
public abstract class Parent { /** 자식에서 공통적으로 사용하는 부분(템플릿 메서드) */ public void someMethod() { System.out.println("Parent에서 실행되는 부분 - 상"); /** 자식에서 다르게 구현해야 하는 부분(훅) */ hook(); System.out.println("Parent에서 실행되는 부분 - 하"); } abstract public void hook(); }
Parent 클래스에 정의된 someMethod() 메서드는 하위 클래스에서 공통으로 사용하는 부분이다.
public class ChildA extends Parent { @Override public void hook() { System.out.println("ChildA 클래스에서 구현한 부분"); } }
public class ChildB extends Parent { @Override public void hook() { System.out.println("ChildB 클래스에서 구현한 부분"); } }
Parent 클래스를 상속받은 하위 클래스인 ChildA, ChildB 클래스에서 hook() 메서드를 다르게 구현해 준다.
public class Client { public static void main(String[] args) { Parent childA = new ChildA(); Parent childB = new ChildB(); childA.someMethod(); System.out.println("=========="); childB.someMethod(); } }
이처럼, 여러 클래스에서 사용하는 공통적인 부분을 상위 클래스에서 정의하고, 다르게 구현해야 하는 부분을 하위 클래스에서 정의하도록 분리함으로써, 코드의 중복을 제거할 수 있다.
출처
ㆍ https://victorydntmd.tistory.com/298
728x90'Language > Java Design Pattern' 카테고리의 다른 글
Java Design Pattern - 추상 팩토리 패턴(Abstract Factory Pattern) (0) 2022.11.22 Java Design Pattern - 팩토리 메서드 패턴(Factory Method Pattern) (0) 2022.11.22 Java Design Pattern - 데커레이터 패턴(Decorator Pattern) (0) 2022.11.21 Java Design Pattern - 옵저버 패턴(Observer Pattern) (0) 2022.11.21 Java Design Pattern - 커맨드 패턴(Command Pattern) (0) 2022.11.20