抽象数据类型包括数据,数据之间的关系,对数据的操作。
这种模式能够将操作和数据及数据关系分离,提供接口,让用户定制自己对数据的操作
public class MyDataStructure {
private List<String> list = new ArrayList<String>();
private Set<String> set = new HashSet<String>();
public void accept(MyVisitor visitor) {
visitor.visit(this);
visitor.visit(list);
visitor.visit(set);
}
}
//向用户暴露的接口
public interface MyVisitor {
public void visit(MyDataStructure ds) ;
public void visit(List<?> list);
public void visit(Set<?> set);
}
```
public class MyVisitorImpl implements MyVisitor {
...
...
}