728x90
Visitor 패턴과 Decorator 패턴은 둘 다 새로운 기능을 추가하는 방법이지만, 그 방식과 사용 목적이 다릅니다.
1. Decorator 패턴: "객체에 기능을 덧붙이는 패턴"
Decorator는 말 그대로 장식을 덧붙이는 것처럼, 기존 객체에 새로운 기능을 덧붙이는 패턴입니다.
커피를 예로 들어봅시다.
- 기본 커피가 있죠. 커피는 그냥 커피일 뿐입니다.
- 하지만, 여기에 우유를 넣고 싶다면? 우유를 추가해서 커피에 새로운 기능을 붙입니다.
- 더 나아가서 설탕을 넣고 싶다면? 또 설탕을 추가해서 커피를 감쌉니다.
이렇게 기본 객체(커피)에 추가 기능(우유, 설탕)을 덧붙여서 객체의 기능을 확장하는 방식입니다.
- Decorator 패턴은 객체를 변경하지 않고 필요할 때마다 기능을 추가할 수 있는 게 장점입니다.
2. Visitor 패턴: "여러 객체를 방문해서 작업하는 패턴"
Visitor는 여러 객체를 돌아다니면서 각각의 객체에서 특정 작업을 수행하는 패턴입니다.
박물관이 있다고 생각해봅시다.
- 박물관에는 그림, 조각상, 화석 등 다양한 전시품들이 있어요.
- 이때, 큐레이터가 박물관의 전시품을 하나씩 방문하면서 설명을 추가합니다.
- 큐레이터는 그림, 조각상, 화석에 각각 다른 설명을 덧붙일 수 있죠.
이처럼 Visitor 패턴은 여러 다른 종류의 객체들을 방문하면서, 그 객체마다 다른 작업(설명 추가)을 수행하는 패턴입니다.
쉽게 요약하면:
- Decorator 패턴은 "한 객체에 여러 기능을 덧붙인다."
- 예: 기본 커피에 우유, 설탕 등 다양한 옵션을 붙이는 것.
- Visitor 패턴은 "여러 객체를 돌아다니며 각각의 작업을 수행한다."
- 예: 박물관 큐레이터가 각 전시품(그림, 조각상)에 설명을 붙이는 것.
차이를 기억하는 쉬운 방법:
- Decorator는 하나의 객체에 여러 기능을 추가하는 데 사용.
- Visitor는 여러 객체를 방문해서 작업을 수행하는 데 사용.
728x90
'Category > 정보처리기사' 카테고리의 다른 글
OSI 7계층(OSI 7 Layer)이란? (0) | 2024.10.13 |
---|---|
UML (Unified Modeling Language) 클래스 간의 관계 정리 (0) | 2024.10.13 |
Factory Method Pattern (팩토리 메서드 패턴)이란? (0) | 2024.10.13 |
UML (Unified Modeling Language) 다이어그램이란? (1) | 2024.10.12 |
XOR(배타적 논리합, Exclusive OR)이란? (0) | 2024.10.12 |