interface Visitor {
void visit(Gladiolus g);
void visit(Runuculus r);
void visit(Chrysanthemum c);
}
interface Flower{
void accept(Visitor v);
}
class Gladiolus implements Flower {
public void accept(Visitor v) { v.visit(this);}
}
//通过用visitor模式的写法
Visitor vst;
List<Flower> flowers = new ArrayList<Flower>();
Iterator<Flower> it = flowers.iterator();
while(it.hasNext()) {
it.next().accept(vst);
//vst.visit(it.next());//同上
}
可以看出针对不同的对象需要Visitor重载visit方法
参考:http://www.iteye.com/topic/114287
void visit(Gladiolus g);
void visit(Runuculus r);
void visit(Chrysanthemum c);
}
interface Flower{
void accept(Visitor v);
}
class Gladiolus implements Flower {
public void accept(Visitor v) { v.visit(this);}
}
//通过用visitor模式的写法
Visitor vst;
List<Flower> flowers = new ArrayList<Flower>();
Iterator<Flower> it = flowers.iterator();
while(it.hasNext()) {
it.next().accept(vst);
//vst.visit(it.next());//同上
}
可以看出针对不同的对象需要Visitor重载visit方法
参考:http://www.iteye.com/topic/114287
本文介绍了一种使用访客模式的设计方法,展示了如何为不同类型的花卉对象定义访问者接口及其实现,以此来处理多种类型的数据。通过示例代码解释了访客模式的基本原理和应用场景。
8350

被折叠的 条评论
为什么被折叠?



