模仿银行有三个窗口,每个窗口分别办理不通的业务
Visitor类实际上还办含了不同窗口受理员的职责,可以认为是银行的受理反应机制吧。
public class Visitor {
public void process(Service service){
// 默认业务
}
public void process(Saving service){
// 存款
}
public void process(Draw service){
// 提款
}
public void process(Fund service){
// 基金
}
}
业务基类
public class Service {
public void accept(Visitor visitor) {
visitor.process(this);
}
}
不同的业务类
public class Saving extends Service {
//各种业务处理流程
}
public class Draw extends Service {
//各种业务处理流程
}
public class fund extends Service {
//各种业务处理流程
}
测试类
public class Client {
public static void main(String[] args) {
Service s1 = new Saving();
Service s2 = new Draw();
Service s3 = new Fund();
Visitor visitor = new Visitor();
s1.accept(visitor);
s2.accept(visitor);
s3.accept(visitor);
}
}
原文:http://www.iteye.com/topic/207092