일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Spring Batch
- hadoop
- spark
- Spring Boot
- intellij
- Java
- Spring
- design pattern
- hibernate
- apache storm
- SBT
- elasticsearch
- Angular2
- 엘라스틱서치
- scala
- 스프링 배치
- Domain Driven Design
- 도메인주도설계
- Gradle
- 제주
- Spring XD
- DDD
- Clean Code
- hdfs
- docker
- nginx
- Storm
- Hbase
- elastic search
- Linux
- Today
- Total
욱'S 노트
Vistor - 데이터 구조를 방문하기 본문
특정한 데이터 구조 가진 오브젝트를 방문하면서 처리를 하고 싶을때
Class Diagram
Sample Code
public interface Element {
public void accept(Visitor visitor);
public void add(Element element);
public List<Element> getChildren();
}
public class ConcreteElement implements Element {
private List<Element> children = new ArrayList<Element>();
@Override
public void accept(Visitor visitor) {
visitor.visitConcreteElement(this);
}
@Override
public void add(Element element) {
children.add(element);
}
@Override
public List<Element> getChildren() {
return this.children;
}
}
public abstract class Visitor {
public abstract void visitConcreteElement(Element element);
}
public class ConcreteVisitor extends Visitor {
@Override
public void visitConcreteElement(Element element) {
List<Element> children = element.getChildren();
for (Element child : children ) {
System.out.println(child);
}
}
}
Caution
특별한 주의사항은 없다.
'Methdology > Design Pattern' 카테고리의 다른 글
Mediator - 중개인을 통해 지시내리기 (0) | 2012.04.26 |
---|---|
Chain of Responsibility - 처리자 연결하기 (0) | 2012.04.25 |
Strategy - 알고리즘 교체 하기 (0) | 2012.04.25 |
Template Method - 구체적인 수행을 하위로 위임하기 (0) | 2012.04.24 |
Iterator - 순환 구조 만들기 (0) | 2012.04.23 |