服务类
package com.cn.vistor.service;
import com.cn.vistor.Vistor;
public abstract class Service {
public void accept(Vistor vistor) {
vistor.process(this);
}
public abstract void handle();
}
访问者类
package com.cn.vistor;
import com.cn.vistor.service.Service;
public class Vistor {
public void process(Service service){
// 处理业务业务
service.handle();
return obj;
}
}
存钱业务的实现类
package com.cn.vistor.service;
public class SaveMoneyService extends Service {
@Override
public void handle() {
System.out.println("将钱存入银行");
}
}
取款业务的实现类
package com.cn.vistor.service;
public class GetMoneyService extends Service{
@Override
public void handle() {
System.out.println("取款成功");
}
}
测试类
package com.cn.vistor;
import com.cn.vistor.service.GetMoneyService;
import com.cn.vistor.service.SaveMoneyService;
import com.cn.vistor.service.Service;
public class VistorTest {
public static void main(String [] args){
Service save = new SaveMoneyService();
Service get = new GetMoneyService();
//save.accept(new Vistor());
get.accept(new Vistor());
}
}
以后我们要添加业务只需要继承service这个类就行了 然后实现handle业务处理代码 其他的地方根本不用改 当然这样做也有很大的问题