1700483276
1700483277
@Override
1700483278
1700483279
public void exec(ProductEvent event){
1700483280
1700483281
//事件的源头
1700483282
1700483283
Product p=event.getSource();
1700483284
1700483285
//事件类型
1700483286
1700483287
ProductEventType type=event.getEventType();
1700483288
1700483289
if(type.getValue()==EventCustomType.CLONE.getValue()){
1700483290
1700483291
System.out.println(“贵族处理事件:”+p.getName()+“克隆,事件类型=”+type);
1700483292
1700483293
}else{
1700483294
1700483295
System.out.println(“贵族处理事件:”+p.getName()+“修改,事件类型=”+type);
1700483296
1700483297
}
1700483298
1700483299
}
1700483300
1700483301
}
1700483302
1700483303
贵族稍有不同,它有两个处理能力,能够处理修改事件和克隆事件,同时在exec方法中对这两类事件分别进行处理。此时,读者可能会想到另外一个处理模式:责任链模式。建立一个链,然后两类事件分别在链上进行处理并反馈结果。读者可以参考一下Servlet的过滤器(Filter)的设计,在框架平台的开发中可以采用该模式,它具有非常好的扩展性和稳定性。
1700483304
1700483305
所有的角色都已出场,我们建立一个场景类把它们串联起来,如代码清单36-13所示。
1700483306
1700483307
代码清单36-13 场景类
1700483308
1700483309
public class Client{
1700483310
1700483311
public static void main(String[]args){
1700483312
1700483313
//获得事件分发中心
1700483314
1700483315
EventDispatch dispatch=EventDispatch.getEventDispathc();
1700483316
1700483317
//接受乞丐对事件的处理
1700483318
1700483319
dispatch.registerCustomer(new Beggar());
1700483320
1700483321
//接受平民对事件的处理
1700483322
1700483323
dispatch.registerCustomer(new Commoner());
1700483324
1700483325
//接受贵族对事件的处理
[
上一页 ]
[ :1.700483276e+09 ]
[
下一页 ]