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 31 32 33 34 35 36 37 38
|
/**项目中完成一个操作需要经过一些列的处理*/
public abstract class AbstractHandler {
public static AbstractHandler startHandler = new Handler1();
private AbstractHandler nextHandler;
static {
startHandler.setNextHandler(new Handler2())
.setNextHandler(new Handler3());
}
private AbstractHandler setNextHandler(AbstractHandler handler){
this.nextHandler = handler;
return this.nextHandler;
}
protected void commonLog(){
System.out.println(this.getClass().getName());
}
protected void handle(){
if(this.nextHandler != null){
this.nextHandler.handle();
}
}
}
public class Handler1 extends AbstractHandler {
@Override
protected void handle() {
if(true){
System.out.println("handle1");
super.commonLog();
}
super.handle();
}
}
|
近期评论