일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- dataframe
- pandas
- dfs
- 다익스트라
- DP
- disjoint set
- series
- 위상정렬
- java
- 백준
- 데이터 flow
- spring security
- 이펙티브 자바
- BFS
- docker
- ddd
- 비트마스크
- 알고리즘
- JPA
- 스프링
- equals
- springboot
- 자바
- 포트앤어댑터 아키텍처
- Redis
- 세그먼트 트리
- UML
- 문자열
- 헥사고날 아키텍처
- 파이썬
Archives
- Today
- Total
코딩못하는사람
템플릿 메서드 패턴(Template Method Pattern) 본문
템플릿 메서드 패턴이란?
어떤 작업을 처리하는 부분에서 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바뀌지 않으면서
필요한 특정 부분만 변경하면서 써야하는 형식을 (동일한 부분+각각 다르게 쓸 부분) 형태의
템플릿 형태로 만들어서 사용하는 패턴이다. 여기서 각각 다르게 쓸 부분을 추상 메서드로 만들어 준다.
추상 클래스의 사용 이유는 중복을 줄여주는데 있다. 템플릿 메서드는 그 추상 클래스의 특징을 사용해서
대부분의 같은 부분중 각각 다르게 쓰여야할 중요 부분들만 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