본문 바로가기
Design Pattern

디자인 패턴 - Template Method pattern

by SuldenLion 2022. 4. 12.
반응형

Template Method pattern : 객체가 실행해야 하는 알고리즘 기본 골격을 추상(부모)클래스에 구현해 놓은 후 서브클래스에서 메소드를 override하여 객체가 수행해야 할 행위의 다양성을 표현하는 방법. ==> 객체지향 프로그래밍 시에 생활화해야 되는 코딩 스타일 / 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴. / 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 함. 

- 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화할때 유용함.

- 동일한 기능을 상위 클래스에서 정의하면서 확장/변화가 필요한 부분만 서브 클래스에서 구현할 수 있도록 함.

- 전체적인 알고리즘은 상위 클래스에서 구현하면서 다른 부분은 하위 클래스에서 구현할 수 있도록 함으로써 전체적인 알고리즘 코드를 재사용하는데 유용하도록 함.

 

Java의 경우 : 라이브러리 함수(예: sort()) / 이벤트 처리함수(예: paintComponent()) / Applet의 각종 이벤트 처리함수

 

역할이 수행하는 작업

ㆍAbstractClass : 템플릿 메서드를 정의하는 클래스 / 하위 클래스에 공통 알고리즘을 정의하고 하위 클래스에서 구현될 기능을 primitive 메서드 또는 hook 메서드로 정의하는 클래스

ㆍConcreteClass : 물려받은 primitive 메서드 또는 hook 메서드를 구현하는 클래스 / 상위 클래스에 구현된 템플릿 메서드의 일반적인 알고리즘에서 하위 클래스에 적합하게 primitive 메서드 또는 hook 메서드를 오버라이드 하는 클래스

 

행위 패턴(Behavioral) 패턴

- 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 / 한 객체가 혼자 수행할 수 없는 작업을 여러개의 객체로 어떻게 분배하는지, 그렇게 하면서도 객체사이의 결합도를 최소화하는 것에 중점을 둠.

 

 

반응형

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

디자인 패턴 - State Pattern  (0) 2022.04.27
디자인 패턴 - Composite Pattern  (0) 2022.04.16
디자인 패턴 - Iterator pattern  (0) 2022.04.12
디자인 패턴 - Facade pattern  (0) 2022.04.12
디자인 패턴 - adapter pattern  (0) 2022.04.10

댓글