템플릿 메소드 패턴과 전략 패턴
333
작성자 없음
작성한 질문수 0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
강의에서 템플릿 메소드의 경우에는 부모 클래스가 바뀌면 자식 클래스에 영향을 미치는 반면에, 전략 패턴의 경우엔 Context 코드가 변경되더라고 Strategy부분에 영향을 미치지 않는다고 설명하셨는데,,, 이 부분이 정학히 이해가 되지않습니다. 혹시 간단한 예시를 통해 이 둘의 차이를 알 수 있을까요ㅠ?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
박준하님의 질문에 대하여 템플릿 메소드 패턴과 전략 패턴의 차이점에 관한 이해를 돕기 위해 유사한 질문과 그에 대한 답변을 찾은 결과를 공유드리겠습니다.
템플릿 메소드 패턴과 전략 패턴의 차이
템플릿 메소드 패턴: 이 패턴은 상속을 통해 구현되며, 부모 클래스에서 알고리즘의 골격을 정의하고 일부 단계를 자식 클래스에서 구현하도록 합니다. 이렇게 하면 알고리즘의 구조는 변경하지 않으면서 특정 단계의 구현을 변형할 수 있습니다. 다만, 부모 클래스의 변경이 자식 클래스에 영향을 미칠 수 있습니다.
전략 패턴: 이 패턴은 구성을 통해 구현되며, 여러 알고리즘을 정의하고 이들을 각각 별개의 클래스에 캡슐화하여 서로 교환 가능하게 만듭니다. 이를 통해 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있습니다. 전략 패턴은 실행 시점에서 전략을 쉽게 변경할 수 있어 유연성이 높습니다.
다음 링크에서 유사한 질문에 대한 답변을 참고하실 수 있습니다:
- 전략패턴과 템플릿 콜백 패턴 차이 관련 질문드립니다.
위 링크에서는 전략 패턴과 유사하게 자주 언급되는 템플릿 콜백 패턴에 대한 설명도 포함되어 있습니다. 전략 패턴과 비슷하게 템플릿 콜백 패턴도 유연성과 재사용성 측면에서 상속보다는 구성을 사용하는 방식입니다. 템플릿 콜백 패턴은 전략 패턴의 형태로 볼 수 있으며, Java에서는 보통 익명 클래스나 람다를 통해 구현됩니다.
이 설명이 박준하님의 이해를 돕는 데 도움이 되길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
어드바이스 순서 디폴트 기준이 궁금합니다.
0
50
1
AspectV1 예제를 @Configuration 수동 등록으로도 가능한가요?
0
77
2
구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?
0
49
1
TraceTemplate 을 미리 빈으로 등록해서 사용할때 이렇게 설정하는게 맞는건가요?
0
53
1
Decorator 에서 추상메서드로 뺄때 질문 있습니다.
0
55
1
대상 클래스에 기본 생성자가 없을 때
0
74
1
스프링 부트 버전 4.0 aop 의존성 명칭 변경
1
341
2
final 키워드 사용 관련 질문
0
74
1
안녕하세요
0
64
1
ThradLocal 실무 사례
0
97
2
실무에서의 동시성 문제
0
62
1
로그 등 부가 기능에 대한 테스트코드
0
50
1
ProceedingJoinPoint와 MethodInvocation에 대하여
0
66
1
실무 멀티스레딩에 대한 궁금증
0
69
1
안녕하세요 질문있습니다
0
43
1
AspectV3 aop 실행 순서 문의 드립니다
0
37
1
MDC vs AOP 중에 고민중입니다.
0
74
1
순환참조
0
158
2
this를 단독으로 사용할때랑 파라미터 바인딩 할때 차이
0
77
1
빈 후처리에 등록 질문 있습니다.
0
75
1
AppConfig 설정하는 설명중에 이해가 안되는게 있습니다.
0
88
1
ThreadLocal을 지역변수로 선언하면 remove가 필요할까요?
0
116
2
@Aspect 어노테이션으로 생성된 Advisor의 Bean 저장 여부
0
67
1
ThreadLocal 사용시 부작용이 있을수 있을까요? (ThreadLocal.remove()를 잘한다고 해도..)
0
72
2





