인프런 커뮤니티 질문&답변
파사드 패턴과 템플릿 메서드 패턴의 차이
작성
·
32
답변 2
0
안녕하세요, 민트향칵테일 님.
템플릿 패턴 예제의 prepareRecipe, process 메소드를 살펴보셨나요? 다른 메소드들을 특정 순서 또는 로직으로 호출하는 메소드로, 파사드의 구조와는 다름을 보실 수 있을거예요.
꼭 그 부분이 아니더라도, 두 패턴의 전반 코드들을 보시면 구조적으로 꽤 차이가 있다는 점을 아실 수 있을 것입니다. 그냥 뭔가를 묶으니까 똑같다고 한다면 사실 다수의 패턴이 서로 같은 패턴이 됩니다.
이들에 주목하여 생각해보셔도 차이점이 잡히지 않으신다면 다시 댓글 달아주시면 보다 풀어 설명드리겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 민트향칵테일님.
파사드 패턴과 템플릿 메서드 패턴은 각각 다른 목적과 구조를 가진 디자인 패턴입니다. 두 패턴의 차이점을 간단히 설명드리겠습니다.
파사드 패턴:
- 목적: 파사드 패턴은 클라이언트가 복잡한 서브시스템에 접근할 때 단순한 인터페이스를 제공하여 사용의 복잡성을 줄이는 것이 목적입니다.
- 구조: 파사드 클래스는 여러 서브시스템 클래스를 내부적으로 구성하며, 클라이언트는 이 파사드 클래스를 통해 서브시스템의 기능을 쉽게 사용할 수 있습니다.
- 사용 예시: 복잡한 라이브러리나 프레임워크의 사용을 단순화하기 위해 파사드 패턴이 자주 사용됩니다.
- 목적: 파사드 패턴은 클라이언트가 복잡한 서브시스템에 접근할 때 단순한 인터페이스를 제공하여 사용의 복잡성을 줄이는 것이 목적입니다.
템플릿 메서드 패턴:
- 목적: 템플릿 메서드 패턴은 알고리즘의 구조를 정의하고, 하위 클래스에서 특정 단계를 구현할 수 있도록 하는 것이 목적입니다.
- 구조: 상위 클래스는 알고리즘의 뼈대를 정의하고, 세부적인 구현은 하위 클래스에서 합니다. 즉, 상위 클래스에서 정의된 ‘템플릿 메서드’가 여러 개의 단계(추상 메서드)를 호출하고, 각 단계는 하위 클래스에 의해 구현됩니다.
- 사용 예시: 알고리즘의 뼈대는 동일하지만 특정 단계는 다르게 구현되어야 하는 경우에 사용됩니다.
- 목적: 템플릿 메서드 패턴은 알고리즘의 구조를 정의하고, 하위 클래스에서 특정 단계를 구현할 수 있도록 하는 것이 목적입니다.
따라서, 두 패턴은 그 목적과 적용되는 상황에서 뚜렷하게 구분됩니다. 파사드 패턴은 클라이언트의 복잡성 감소를 목적으로 서브시스템과 클라이언트 사이의 인터페이스를 단순화하는 것에 중점을 두고 있고, 템플릿 메서드 패턴은 알고리즘의 구조를 템플릿으로 정의하고 그 구현을 하위 클래스로 위임하는 역할을 합니다.
이와 관련된 더욱 상세한 내용을 알고 싶으시다면 아래 게시글을 참조하세요:
- 파사드 패턴과 이해하기
- 템플릿 메서드 패턴에 대한 이해
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




