메뉴 닫기

[디자인패턴]visitor 패턴

조금 이해하는게 쉽지는 않다.(재귀 관계적 사고가 필요함)

천천히 봐보자.

먼저 위키피디아에 따르면 visitor 패턴(방문자 패턴)은 알고리즘(동작)을 객체 구조에서 분리시키기 위한 패턴이다. 이렇게 분리 하면 구조의 변화 없이 새로운 동작을 추가시킬 수 있다는 장점을 가지게 된다.(…… 이걸보고 이해가 안되는건 나만인가)

visitor 패턴은 컴포지트 패턴과 관련이 있다.(위키피디아에서는 같이 보기로 컴포지트 패턴 링크 제공)

가령, Car 라는 객체가 있다면 visitor 패턴에서는 Car는 Wheel 과 Handle을 가진 구조체(객체구조)가 된다. 이때 Visitor는 car객체내의 Wheel과 Handle 의 가격을 확인하는 알고리즘(동작)을 가지게 되는데(해당 알고리즘은 visit 메소드로 구현) 후에 Wheel의 마모 정도를 확인하는 알고리즘을 추가하고 싶다면 visitor를 추가하는 식으로 알고리즘을 추가할 수 있다.

이렇게 작동하는 것이 visitor패턴의 알고리즘과 객체구조 분리라고 이해.