본문 바로가기
Design Pattern

Template Method Pattern

by orioncsy 2023. 5. 25.

Template Method Pattern

개념

Template Method Pattern

  • 로직을 단계별로 구변할 때 사용하는 설계 패턴
  • 특정 단계가 수정될 가능성이 있는 경우 효율적이다.

구현 방식

기본 조건

Template Method Pattern

 

  • 추상 클래스로 구현한다.
  • 단계를 진행하는 메서드는 final을 통해 수정을 못하도록 제한한다.
  • 각 단계는 외부에서 접근 못하게 하고 자식 클래스만 수정하도록 허용하기 위해 protected로 선언한다.

구현 사례

추상 클래스

abstract class Pasta{
	protected void boil(){ System.out.println("Boil noodles"); }
	abstract void sauce(){}
	protected void fry(){ System.out.println("fry pasta"); }

	final void cookPasta(){
		this.boil();
		this.sauce();
		this.fry();
	}
} 

하위 클래스

class AglioOlio extends Pasta{
	@Override
	void sauce(){ System.out.println("pour garlic & olive oil"); }
}

class Carbonara extends Pasta{
	@Override
	void sauce(){ System.out.println("pour yolk & cheese"); }
}

class Pomodoro extends Pasta{
	@Override
	void sauce(){ System.out.println("pour tomato & bazil"); }
}

Reference

https://gyoogle.dev/blog/design-pattern/Template%20Method%20Pattern.html

'Design Pattern' 카테고리의 다른 글

Factory Method Pattern  (0) 2023.05.26
Singleton Pattern  (0) 2023.05.24
Adapter Pattern  (0) 2023.05.23
Design Pattern  (0) 2023.05.04