인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 핵심 원리 - 고급편

전략 패턴 - 예제1

템플릿 메소드 패턴과 전략 패턴

작성

·

210

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
강의에서 템플릿 메소드의 경우에는 부모 클래스가 바뀌면 자식 클래스에 영향을 미치는 반면에, 전략 패턴의 경우엔 Context 코드가 변경되더라고 Strategy부분에 영향을 미치지 않는다고 설명하셨는데,,, 이 부분이 정학히 이해가 되지않습니다. 혹시 간단한 예시를 통해 이 둘의 차이를 알 수 있을까요ㅠ?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

박준하님의 질문에 대하여 템플릿 메소드 패턴과 전략 패턴의 차이점에 관한 이해를 돕기 위해 유사한 질문과 그에 대한 답변을 찾은 결과를 공유드리겠습니다.

템플릿 메소드 패턴과 전략 패턴의 차이

  • 템플릿 메소드 패턴: 이 패턴은 상속을 통해 구현되며, 부모 클래스에서 알고리즘의 골격을 정의하고 일부 단계를 자식 클래스에서 구현하도록 합니다. 이렇게 하면 알고리즘의 구조는 변경하지 않으면서 특정 단계의 구현을 변형할 수 있습니다. 다만, 부모 클래스의 변경이 자식 클래스에 영향을 미칠 수 있습니다.

  • 전략 패턴: 이 패턴은 구성을 통해 구현되며, 여러 알고리즘을 정의하고 이들을 각각 별개의 클래스에 캡슐화하여 서로 교환 가능하게 만듭니다. 이를 통해 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있습니다. 전략 패턴은 실행 시점에서 전략을 쉽게 변경할 수 있어 유연성이 높습니다.

다음 링크에서 유사한 질문에 대한 답변을 참고하실 수 있습니다:
- 전략패턴과 템플릿 콜백 패턴 차이 관련 질문드립니다.

위 링크에서는 전략 패턴과 유사하게 자주 언급되는 템플릿 콜백 패턴에 대한 설명도 포함되어 있습니다. 전략 패턴과 비슷하게 템플릿 콜백 패턴도 유연성과 재사용성 측면에서 상속보다는 구성을 사용하는 방식입니다. 템플릿 콜백 패턴은 전략 패턴의 형태로 볼 수 있으며, Java에서는 보통 익명 클래스나 람다를 통해 구현됩니다.

이 설명이 박준하님의 이해를 돕는 데 도움이 되길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기