파사드 패턴과 템플릿 메서드 패턴의 차이
194
4 câu hỏi đã được viết
파사드 패턴은 다수의 서브시스템을 하나로 묶는 패턴으로 이해했습니다. 클라이언트의 클래스의 함수에서 서브시스템에 해당하는 개체들의 함수를 호출하여 구현하는 거 같은데요, 어떻게 보면 템플릿 메서드 패턴과 사실상 똑같은거 아닌가요? 두 패턴의 뚜렷한 차이가 있는데 제가 이해를 잘 못한건지 질문드립니다.
Câu trả lời 2
0
안녕하세요, 민트향칵테일 님.
템플릿 패턴 예제의 prepareRecipe, process 메소드를 살펴보셨나요? 다른 메소드들을 특정 순서 또는 로직으로 호출하는 메소드로, 파사드의 구조와는 다름을 보실 수 있을거예요.
꼭 그 부분이 아니더라도, 두 패턴의 전반 코드들을 보시면 구조적으로 꽤 차이가 있다는 점을 아실 수 있을 것입니다. 그냥 뭔가를 묶으니까 똑같다고 한다면 사실 다수의 패턴이 서로 같은 패턴이 됩니다.
이들에 주목하여 생각해보셔도 차이점이 잡히지 않으신다면 다시 댓글 달아주시면 보다 풀어 설명드리겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 민트향칵테일님.
파사드 패턴과 템플릿 메서드 패턴은 각각 다른 목적과 구조를 가진 디자인 패턴입니다. 두 패턴의 차이점을 간단히 설명드리겠습니다.
파사드 패턴:
- 목적: 파사드 패턴은 클라이언트가 복잡한 서브시스템에 접근할 때 단순한 인터페이스를 제공하여 사용의 복잡성을 줄이는 것이 목적입니다.
- 구조: 파사드 클래스는 여러 서브시스템 클래스를 내부적으로 구성하며, 클라이언트는 이 파사드 클래스를 통해 서브시스템의 기능을 쉽게 사용할 수 있습니다.
- 사용 예시: 복잡한 라이브러리나 프레임워크의 사용을 단순화하기 위해 파사드 패턴이 자주 사용됩니다.
- 목적: 파사드 패턴은 클라이언트가 복잡한 서브시스템에 접근할 때 단순한 인터페이스를 제공하여 사용의 복잡성을 줄이는 것이 목적입니다.
템플릿 메서드 패턴:
- 목적: 템플릿 메서드 패턴은 알고리즘의 구조를 정의하고, 하위 클래스에서 특정 단계를 구현할 수 있도록 하는 것이 목적입니다.
- 구조: 상위 클래스는 알고리즘의 뼈대를 정의하고, 세부적인 구현은 하위 클래스에서 합니다. 즉, 상위 클래스에서 정의된 ‘템플릿 메서드’가 여러 개의 단계(추상 메서드)를 호출하고, 각 단계는 하위 클래스에 의해 구현됩니다.
- 사용 예시: 알고리즘의 뼈대는 동일하지만 특정 단계는 다르게 구현되어야 하는 경우에 사용됩니다.
- 목적: 템플릿 메서드 패턴은 알고리즘의 구조를 정의하고, 하위 클래스에서 특정 단계를 구현할 수 있도록 하는 것이 목적입니다.
따라서, 두 패턴은 그 목적과 적용되는 상황에서 뚜렷하게 구분됩니다. 파사드 패턴은 클라이언트의 복잡성 감소를 목적으로 서브시스템과 클라이언트 사이의 인터페이스를 단순화하는 것에 중점을 두고 있고, 템플릿 메서드 패턴은 알고리즘의 구조를 템플릿으로 정의하고 그 구현을 하위 클래스로 위임하는 역할을 합니다.
이와 관련된 더욱 상세한 내용을 알고 싶으시다면 아래 게시글을 참조하세요:
- 파사드 패턴과 이해하기
- 템플릿 메서드 패턴에 대한 이해
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
서비스에서와 컨트롤러의 @Vaild 적용 차이에 대해서
0
9
1
업캐스팅 문제 예시 4번 부모 호출
0
15
1
copilot-instruction.md
0
9
0
트랜잭션 내 Redis I/O 에 대한 궁금한점
1
17
1
모의고사 자료 해설이 너무 불친절하네요.
0
38
2
부모의 생성자 출력 관련
0
15
2
이론파트 재탕문제
0
18
0
누락코드
0
18
1
다차원 배열 포인터 질문있습니다
0
29
3
이론 파트 재탕
0
32
1
모의고사 5회
0
30
1
12분 10초 func(values, 0, 1)을 넣을 때
0
37
1
재탕문제
0
57
1
재탕문제
0
38
0
파이썬 추가 코드
0
52
1
강의 순서에 대한 궁금증
0
148
2
3-layer 에서의 파사드 패턴적용
0
131
2
강의 전부 수강했는데 퀴즈 활성화가 안되는 것 같습니다.
0
151
1
수정 요청
-18
317
5
안녕하세요.
0
166
1
질문이있습니다.
0
150
1
DIP 질문
0
178
2
빌더패턴 질문있습니다!
0
277
1
파사드 패턴에 대해 질문이 있습니다.
0
532
3

