템플릿(Template)

개방 폐쇄 원칙(OCP)

클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다

변화의 특성이 다른 부분을 구분하고 각각 다른 목적과 이유에 의해 다른 시점에 독립적으로 변경될 수 있는 효율적인 구조를 만들어야 함

image.png

템플릿

코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법

독립시키는 이유?

OCP를 잘 ㅈ지키게 할 수 있도록 하기 위함 → 효과적으로 이 코드를 재사용할 수 도 있고, 확장 할 수도 있게 만들기 위함

2가지 특징

  1. 템플릿

    : 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분

  2. 콜백(Callback)

    : 자유롭게 변경되는 성질을 가진 부분

⇒ 템플릿 콜백 패턴이라고도 부름