Visitor 패턴은 실제 로직을 가지고 있는 객체가 로직을 적용할 객체를 방문하면서 실행하는 패턴입니다. 즉, 로직과 구조를 분리하는 패턴이라고 볼 수 있습니다. 구조 Visitor 방문자 클래스의 인터페이스입니다. visit(Element) 메서드를 공용 인터페이스로 사용합니다. 여기서 Element는 방문 공간을 의미합니다. Element 방문 공간 클래스의 인터페이스입니다. accept(Visitor) 메서드를 공용 인터페이스로 사용합니다. 여기서 Visitor는 방문자를 의미합니다. 내부적으로 Visitor.visit(this)를 호출합니다. ConcreteVisitor Visitor를 구체적으로 구현한 클래스입니다. ConcreteElement Element를 구체적으로 구현한 클래스입니다. ..