반응형
이전 포스팅에서 템플릿 메서드 패턴에 대해서 다룬 포스팅이 있다.
이번 포스팅을 읽기 전에 템플릿 메서드 패턴에 대해서 먼저 보고 오는 것을 추천한다.
참고 포스팅에 이어서
코드를 변하는 부분과 변하지 않는 부분으로 나눠야 하는데,
템플릿 메서드 패턴은 추상 클래스를 상속 받게 되어
부모의 클래스가 변경이 된다면 자식 클래스도 변경이 불가피 한 상황이 된다.
이럴 경우에 좀 더 나은 코드로 변화하기 위해서 전략 패턴이 생겼다.
바로 예제 코드로 알아보면,
- 우선 실행할 메서드를 갖고있는 인터페이스를 하나 만들어준다.
public interface Strategy { void call(); } |
- 그리고 공통 로직을 담을 일반 클래스를 하나 만들어준다.
@Slf4j public class StrategyContext { public void execute(Strategy strategy) { log.info("서비스 실행"); //business logic start strategy.call(); //business logic end // 현재 시간 DB 저장 log.info("서비스 종료"); } } |
- 그리고 사용시 만든 클래스를 호출해주면 된다.
void strategy() { StrategyContext context = new StrategyContext(); context.execute(new Strategy() { @Override public void call() { log.info("business logic1 start"); } }); } |
참고 포스팅
https://thenicesj.tistory.com/1095
반응형
'IT > Java' 카테고리의 다른 글
콜백 패턴(Callback Pattern) (17) | 2024.10.29 |
---|---|
[Error] argument type mismatch (13) | 2024.10.27 |
템플릿 메서드 패턴 예제(Template Method Pattern) (12) | 2024.10.24 |
익명클래스 -> Lambda(람다식) 변환 예제 (15) | 2024.10.22 |
[Spring Security] WebSecurityConfigurerAdapter / antMatchers 관련(SecurityFilterChain / requestMatchers) (15) | 2024.10.21 |
댓글