본문 바로가기
Language/Java

[Java] 자바 템플릿 메소드 패턴(디자인 패턴)

by 시믈리에 2021. 7. 11.

서문


템플릿 메소드의 정의론

알고리즘의 구조를 메소드에 정의하고, 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의 하는 패턴이다. 알고리즘이 단계별로 나누어 지거나, 같은 역할을 하는 메소드이지만 여러곳에서 다른형태로 사용이 필요한 경우 유용한 패턴이다.
-GoF Design Patterns-

위에 말을 예를 빵으로 들어 쉽게 와닿게 해드겠습니다

위에서 구조 메서드 라는것은 빵굽는기계를 의미하고, 하위 클래스가 각각의 다른 종류의 빵이라고 했을때

빵굽는것을 열을 가하고 일정 시간이 지나면 빵이 구어지죠?

여기서 열을 하는것과 시간이 지나는것이 빵을 굽는 구조입니다

형형색색의 빵들이 빵기계에 들어간다해서 빵이 구어지는 구조는 달라지지 않습니다

단지 서로 다른 빵이 나올 뿐입니다

 

목차


  • 템플릿 메소드 패턴 구조
  • 템플릿 메소드 원리
  • 템플릿 메소드 장단점

 

 

템플릿 메소드 패턴 구조


템플릿 메소드 패턴

 

 

템플릿 메소드 원리


 

먼저 노란부분은 하위 메소드는 위한 구조를 정합니다

(추가설명: 문의 메커니즘은 열리고 닫치는 겁니다)

파란색부분은 문을 열때 문이 할수있는 액션은 바뀌니 추상 클래스로 해두겠습니다

핑크색부분은 상속을 받은 하위 메서드들이 액션을 만들어 줍니다

빨간색부분은 그 안에 명령어들을 실행시켜줍니다.

 

템플릿 메소드 패턴을 이용하여 사용하는 모습이다

결괏값은 아래와 같다

템플릿 메소드 장단점


 

장점

1.중복 코드를 줄일수 있다

2. 자식 클래스 메커니즘을 부모 클래스가 만듬으로써 생산성이 용이하다

3.구현 코드가 간결해진다

4.확장이 용이하다

 

단점

1.코드 메커니즘이 상속을 받아 구현하는 것이므로 클래스간의 관계가 복잡해진다

댓글