Visitor 패턴
여러 종류의 객체로 이뤄진 구조는 그대로 둔 채, 그 객체들에 대해 수행할 새로운 동작(연산)을 별도의 '방문자' 객체로 손쉽게 추가할 수 있게 해주는 디자인 패턴입니다.
한눈에 보는 정의
Visitor 패턴은 여러 종류의 객체로 이뤄진 구조는 그대로 둔 채, 그 객체들에 대해 수행할 새로운 동작(연산)을 별도의 '방문자' 객체로 추가할 수 있게 해주는 디자인 패턴입니다.
자세히 알아보기
- 예문: "도형(원, 사각형) 클래스는 그대로 두고, '넓이 계산'이라는 새로운 방문자를 추가해 각 도형에 적용하는 것이 Visitor 패턴의 예다."
- 새로운 기능이 필요할 때마다 기존 클래스 코드를 일일이 수정하는 대신, 새로운 방문자 객체 하나만 추가하면 되어 기존 코드에 미치는 영향을 줄일 수 있습니다.
- 다만 객체 구조 자체에 새로운 종류가 자주 추가되는 경우에는, 모든 방문자를 다시 수정해야 해서 오히려 불리해질 수 있습니다.
- Iterator 패턴 (Iterator 패턴)으로 여러 객체를 순회하면서, 각 객체에 Visitor 패턴으로 새로운 연산을 적용하는 방식으로 함께 쓰이기도 합니다.