코딩못하는사람

템플릿 메서드 패턴(Template Method Pattern) 본문

스프링(Spring)/스프링 디자인 패턴

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

공부절대안함 2021. 3. 21. 04:33

템플릿 메서드 패턴이란?

어떤 작업을 처리하는 부분에서 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바뀌지 않으면서

필요한 특정 부분만 변경하면서 써야하는 형식을 (동일한 부분+각각 다르게 쓸 부분) 형태의

템플릿 형태로 만들어서 사용하는 패턴이다. 여기서 각각 다르게 쓸 부분을 추상 메서드로 만들어 준다.

 

https://limkydev.tistory.com/81?category=957882

추상 클래스의 사용 이유는 중복을 줄여주는데 있다. 템플릿 메서드는 그 추상 클래스의 특징을 사용해서

대부분의 같은 부분중 각각 다르게 쓰여야할 중요 부분들만 override해서 쓰는 것이다.

 

학생들에게 다니기만 하면 주는 모범상을 준다고 가정해보자.(예시이기 때문에 간단하다)

진부한 상장 내용이 중복될 것이고 그 사이에 바뀌는 학생들 이름이 들어가야 할 것이다.

 

 

Awards 추상클래스에 printAward() 가 템플릿 메서드이다.

템플릿 메서드 안에 우리가 원하는 name() 메서드를 Override해주어야 하고

Month()는 필요하다면 Override해주면 된다( 이런 메서드를 Hook메서드라고 한다)

 

한번에 구체클래스를 구현하지 않고 추상클래스에 템플릿 메서드를 구현해 놓으면,

구체클래스를 만들 때 필요한 방향으로 메서드를 작성하며 상속을 받을 수 있게 된다.

이러한 템플릿화를 통해 중복을 줄여서 코드를 짤 수 있게 된다.

추상클래스가 내가 작성해야 할 대략적인 템플릿을 제공해준다고 생각하자.

 

limkydev.tistory.com/81?category=957882를 보고 공부하였습니다.

'스프링(Spring) > 스프링 디자인 패턴' 카테고리의 다른 글

프록시 패턴(Proxy Pattern)  (0) 2021.03.21
어댑터 패턴(Adapter Pattern)  (0) 2021.03.20
Comments