방문자 패턴의 이해

방문자 패턴은 객체 구조를 이루는 요소들을 독립적으로 변경할 수 있도록 하는 패턴이다.

객체 구조를 이루는 클래스들과 이들을 순회하는 방문자 클래스를 정의하고, 이 방문자 클래스는 객체 구조의 각 클래스들을 방문하면서 그 클래스에서 수행할 작업을 구현한다.

방문자 패턴의 구성 요소는 다음과 같다.

  1. IVisitor: 방문자가 되고자 하는 클래스가 구현할 인터페이스다.
  2. Ivisitable: 방문할 클래스는 Ivisitable 인터페이스를 구현해야 하며, Accept()가 포함된다.

Unity에서는 방문자 패턴을 이용하여 power-up 메커니즘을 구현한다.

방문자 패턴의 장점

방문자를 통하여 객체 구조의 수정없이 새로운 작업을 추가하거나 객체 구조를 순회할 수 있다.

  1. SOLID 원칙 중 OCP를 준수한다.

    방문자 패턴은 직접적인 수정없이 다른 오브젝트와 함께 작동하는 새로운 동작을 추가할 수 있다는 점에서 OCP를 준수한다.

  2. SOLID 원칙 중 SRP를 준수한다.

    방문자 패턴은 데이터를 보유하는 객체를 가질 수 있고, 특정 행동을 도입하는 책임을 지는 방문자 객체를 가진다는 점에서 SRP를 준수한다.