방문자 패턴이란?

데이터의 구조와 처리를 분리하는 패턴

분리를 하면 구조를 수정하지 않고도 실질적으로 새로운 동작을 기존의 객체 구조에 추가할 수 있게 된다

구조

structure.png

  • Visitor
    데이터 처리를 하는 객체를 추상화
  • Element
    데이터를 구조를 추상화
    Visitor 객체를 받아들이는 데이터 구조의 인터페이스

장점

데이터의 구조,즉 처리 대상과 처리 항목을 구조적으로 분리하여

데이터의 독립성을 높여준다

처리하는 입장에서는 동일한 인터페이스로 다양한 데이터를 처리할 수 있게 해준다

단점

Element, 데이터 구조가 추가됨에 따라

Visitor, 처리할 객체도 이에 따른 처리과정을 추가해야 한다.

따라서 두 객체간의 결합도가 높아지게 된다.


출처