728x90
방문자 패턴은 객체와 구조를 이루는 원소에 대해 수행할 연산을 표현한다. 연산을 적용할 원소의 클래스를 변경하지 않고도 새로운 연산을 정의할 수있게 한다.
구조
특징
사용 시기
- 객체 구조에 포함된 원소에 대해 구체 방문자 클래스에 따라 달라질 연산을 원소에 대해 수행 할 때
- 각각 특징이 있고 관련되지 않은 많은 연산이 한 객체 구조에 속해 있는 객체들에 대해 수행될 필요가 있으며 연산으로 클래스들을 더럽히고 싶지 않을 때
- 객체 구조를 정의한 클래스는 거의 변하지 않지만 전체 구조에 걸쳐 새로운 연산을 추가하고 싶을 때
장점
- 기존 코드를 수정하지 않고 새로운 코드를 추가할 수 있다.
- 추가 기능을 한곳에 모을 수 있다.
단점
- 복잡하다
- 새로운 Element 를 추가하거나 제거할 때 모든 Visitor 코드를 수정해야 한다.
728x90
'코드 > GOF' 카테고리의 다른 글
디자인 패턴 - 행위(Behavioral) 패턴 (10) 전략 패턴(Strategy Pattern) (1) | 2024.03.19 |
---|---|
디자인 패턴 - 행위(Behavioral) 패턴 (9) 상태 패턴(State Pattern) (0) | 2024.03.18 |
디자인 패턴 - 행위(Behavioral) 패턴 (8) 옵저버 패턴(observer Pattern) (2) | 2024.03.18 |
디자인 패턴 - 행위(Behavioral) 패턴 (7) 메멘토 패턴(Memento Pattern) (0) | 2024.03.18 |
디자인 패턴 - 행위(Behavioral) 패턴 (6) 중재자 패턴(Mediator Pattern) (0) | 2024.03.18 |