1700464320
1700464321
public static void main(String[]args){
1700464322
1700464323
//随机挑选几个女性
1700464324
1700464325
Random rand=new Random();
1700464326
1700464327
ArrayList<IWomen>arrayList=new ArrayList();
1700464328
1700464329
for(int i=0;i<5;i++){
1700464330
1700464331
arrayList.add(new Women(rand.nextInt(4),“我要出去逛街”));
1700464332
1700464333
}
1700464334
1700464335
//定义三个请示对象
1700464336
1700464337
Handler father=new Father();
1700464338
1700464339
Handler husband=new Husband();
1700464340
1700464341
Handler son=new Son();
1700464342
1700464343
//设置请示顺序
1700464344
1700464345
father.setNext(husband);
1700464346
1700464347
husband.setNext(son);
1700464348
1700464349
for(IWomen women:arrayList){
1700464350
1700464351
father.HandleMessage(women);
1700464352
1700464353
}
1700464354
1700464355
}
1700464356
1700464357
}
1700464358
1700464359
在Client中设置请求的传递顺序,先向父亲请示,不是父亲应该解决的问题,则由父亲传递到丈夫类解决,若不是丈夫类解决的问题则传递到儿子类解决,最终的结果必然有一个返回,其运行结果如下所示。
1700464360
1700464361
––—妻子向丈夫请示––-
1700464362
1700464363
妻子的请求是:我要出去逛街
1700464364
1700464365
丈夫的答复是:同意
1700464366
1700464367
––—女儿向父亲请示––-
1700464368
1700464369
女儿的请求是:我要出去逛街
[
上一页 ]
[ :1.70046432e+09 ]
[
下一页 ]