티스토리 툴바

Visitor Pattern

1. 컨텍스트
객체의 요소에 대해 수행하는 오퍼레이션을 나타낸다. Visitor는 자신의 오퍼레이션의 대상이 되는 요소를 갖는 클래스를 수정하지 않고 새로운 오퍼레이션을 정의하는 것을 가능하게 한다.

2. 적용 영역
l        객체의 구조를 정의하는 클래스가 잘 변하지 않으나, 이러한 구조 상에서 새로운 오퍼레이션을 정의하고자 하는 경우
l        하나의 객체에 대해서 관련이 적은, 상이한 오퍼레이션을 수행할 필요가 있는 경우, 이러한 오퍼레이션에 의해 클래스가 난잡하게 되는 것을 막기 위해 사용한다.

3. 구조

4. 적용 결과
l        새로운 오퍼레이션 추가가 용이하다.
l        Visitor는 관련 있는 오퍼레이션을 묶고, 관련이 적은 오퍼레이션을 분리시킨다.
l        Visitor의 사용은 ConcreteElement 인터페이스가 내부 상태에 접근할 수 있는 공개된 오퍼레이션 제공을 요구하여, 캡슐화(encapsulation)를 약화시킨다.

5. 관련 패턴
l        Visitor 패턴은 Composite 패턴에 의해 정의된 객체 구조에 대해 오퍼레이션을 적용하는데 사용될 수 있다.
l        Visitor 패턴은 Interpreter 역할 수행을 위해 적용될 수 있다.

6. 참고 문헌
온라인
위키 피디아: Visitor
자바월드 아티클: Reflect on the Visitor design pattern

서적 안내
Design Patterns: Elements of Reusable Object-Oriented Software

Head First Design Patterns
에릭 프리먼 외 지음,
서환수 옮김
한빛미디어

GOF의 디자인 패턴
Erich Gamma 외 지음,
김정아 옮김
피어슨에듀케이션코리아

설정

트랙백

댓글