코드/GOF
디자인 패턴 - 행위(Behavioral) 패턴 (11) 방문자 패턴(Visitor Pattern)
미로처럼
2024. 3. 19. 16:27
728x90
방문자 패턴은 객체와 구조를 이루는 원소에 대해 수행할 연산을 표현한다. 연산을 적용할 원소의 클래스를 변경하지 않고도 새로운 연산을 정의할 수있게 한다.
구조
특징
사용 시기
- 객체 구조에 포함된 원소에 대해 구체 방문자 클래스에 따라 달라질 연산을 원소에 대해 수행 할 때
- 각각 특징이 있고 관련되지 않은 많은 연산이 한 객체 구조에 속해 있는 객체들에 대해 수행될 필요가 있으며 연산으로 클래스들을 더럽히고 싶지 않을 때
- 객체 구조를 정의한 클래스는 거의 변하지 않지만 전체 구조에 걸쳐 새로운 연산을 추가하고 싶을 때
장점
- 기존 코드를 수정하지 않고 새로운 코드를 추가할 수 있다.
- 추가 기능을 한곳에 모을 수 있다.
단점
- 복잡하다
- 새로운 Element 를 추가하거나 제거할 때 모든 Visitor 코드를 수정해야 한다.
728x90