코드/GOF

디자인 패턴 - 행위(Behavioral) 패턴 (11) 방문자 패턴(Visitor Pattern)

미로처럼 2024. 3. 19. 16:27
728x90

방문자 패턴은 객체와 구조를 이루는 원소에 대해 수행할 연산을 표현한다. 연산을 적용할 원소의 클래스를 변경하지 않고도 새로운 연산을 정의할 수있게 한다.

 

구조

 

 

특징

 

사용 시기

  • 객체 구조에 포함된 원소에 대해 구체 방문자 클래스에 따라 달라질 연산을 원소에 대해 수행 할 때
  • 각각 특징이 있고 관련되지 않은 많은 연산이 한 객체 구조에 속해 있는 객체들에 대해 수행될 필요가 있으며 연산으로 클래스들을 더럽히고 싶지 않을 때
  • 객체 구조를 정의한 클래스는 거의 변하지 않지만 전체 구조에 걸쳐 새로운 연산을 추가하고 싶을 때

장점

  • 기존 코드를 수정하지 않고 새로운 코드를 추가할 수 있다. 
  • 추가 기능을 한곳에 모을 수 있다.

 

단점

  • 복잡하다
  • 새로운 Element 를 추가하거나 제거할 때 모든 Visitor 코드를 수정해야 한다.

 

 

 

 

 

 

 

728x90