반응형
Visitor Pattern ( 방문자 패턴, visitor 패턴 ) |
https://en.wikipedia.org/?title=Visitor_pattern
-
객체의 구조와 기능을 분리시키는 패턴.
구조는 변하지 않으면서 기능만을 따로 추가하거나 확장되어야 할 경우에 사용하는 패턴이다.
-
visitor pattern 은 2개의 interface 가 필요하다.
하나는 element 로 visitor 를 맞이하는 accept 라는 함수를 제공한다.
다른 하나는 visitor 로 concrete 한 element 를 받아들이는 visit 함수를 제공한다.
interface IElement{
void accept(IElementVisitor visitor);
}
inteface IElementVisitor{
void visit(ConcreteElement element);
void visit(ConcreteElement2 element);
...
}
-
각 ConcreateElement 에서는 visitor 에 대해 자신을 전달하면 된다.
Visitor 는 늘어나는 Concrete Element 들에 대해 visit 함수를 추가해주면 된다.
-
Visitor 의 종류에 따라서 각 Element 들에 대해 수행하는 일이 다르다.
-
반응형
'프로그래밍 놀이터 > 디자인 패턴, 리펙토링' 카테고리의 다른 글
[책 정리] 1장. 설계와 아키텍처란? - Clean Architecture (0) | 2020.04.05 |
---|---|
Composite Pattern ( 콤포지션 패턴 ) (0) | 2017.06.30 |
[도서 목차 정리] Effective Java (0) | 2017.03.30 |
[Effective Java] 직렬화된 인스턴스 대신 직렬화 프록시의 사용을 고려하자. (0) | 2017.03.28 |
[Effective Java] 인스턴스 제어에는 readResolve 메소드보다 enum 타입을 사용하자. (0) | 2017.03.27 |
댓글