1700464420
public final Response handleMessage(Request request){
1700464421
1700464422
Response response=null;
1700464423
1700464424
//判断是否是自己的处理级别
1700464425
1700464426
if(this.getHandlerLevel().equals(request.getRequestLevel())){
1700464427
1700464428
response=this.echo(request);
1700464429
1700464430
}else{//不属于自己的处理级别
1700464431
1700464432
//判断是否有下一个处理者
1700464433
1700464434
if(this.nextHandler!=null){
1700464435
1700464436
response=this.nextHandler.handleMessage(request);
1700464437
1700464438
}else{
1700464439
1700464440
//没有适当的处理者,业务自行处理
1700464441
1700464442
}
1700464443
1700464444
}
1700464445
1700464446
return response;
1700464447
1700464448
}
1700464449
1700464450
//设置下一个处理者是谁
1700464451
1700464452
public void setNext(Handler_handler){
1700464453
1700464454
this.nextHandler=_handler;
1700464455
1700464456
}
1700464457
1700464458
//每个处理者都有一个处理级别
1700464459
1700464460
protected abstract Level getHandlerLevel();
1700464461
1700464462
//每个处理者都必须实现处理任务
1700464463
1700464464
protected abstract Response echo(Request request);
1700464465
1700464466
}
1700464467
1700464468
抽象的处理者实现三个职责:一是定义一个请求的处理方法handleMessage,唯一对外开放的方法;二是定义一个链的编排方法setNext,设置下一个处理者;三是定义了具体的请求者必须实现的两个方法:定义自己能够处理的级别getHandlerLevel和具体的处理任务echo。
1700464469
[
上一页 ]
[ :1.70046442e+09 ]
[
下一页 ]