일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스트림
- CQRS
- 클린코드
- AWS101
- Clean Code
- ddd
- spring Batch
- Design Pattern
- 디자인 패턴
- 자바8인액션
- Java8
- head first
- Java
- facade pattern
- 자바8
- spring boot
- 자바
- Java in action
- spring
- domain
- web
- Java8 in action
- Was
- Template Method Pattern
- 자바의 신
- 패스트캠퍼스
- SERVLET
- Stream
- jsp
- Java 8 in action
Archives
- Today
- Total
주난v 개발 성장기
[디자인 패턴] 템플릿 메소드 패턴 본문
DB 데이터와 LDAP을 이용해서 인증을 처리하는 클래스를 만들었을 때...
두 클래스는 거의 유사한 코드를 갖게 된다.
실행의 과정 / 단계는 동일한데 일부의 구현이 다른 경우에 사용하는 패턴을 "템플릿 메서드 패턴"이라고 한다.
public abstract authenticator {
public Auth authenticate(String id, String pw) {
if (!doAuthenticate(id, pw) {
throw createException();
}
return createAuth(id);
}
protected abstract boolean doAuthenticate(String id, String pw);
protected abstract Auth createAuth(String id);
}
public class LdapAuthenticator extends Authenticator {
@Override
protectd boolean doAuthenticate(String id, String pw) {
return ldapClient.authenticate(id, pw);
}
}
authenticate() 메소드는 모든 하위 타입에 동일하게 적용되는 실행 과정을 제공하기 때문에, 템플릿 메서드라고 부른다.
상위클래스가 흐름 제어 주체
- 보통은 하위 클래스에서 상위 타입의 기능을 재사용할지 여부를 판단.
- 템플릿 메서드는 상위 클래스에서 흐름을 제어.."헐리우드 원칙"
훅 메서드
상위 클래스에서 실행 시점이 제어되고, 기본 구현을 제공하면서, 하위 클래스에서 알맞게 확장할 수 있는 메서드를 훅 메서드라고 한다.
'개발 성장기 > 디자인 패턴' 카테고리의 다른 글
[디자인 패턴] 전략(Strategy) 패턴 (0) | 2020.07.07 |
---|---|
[디자인 패턴] 퍼사드 패턴 (Facade Pattern) (0) | 2020.05.28 |