打字猴:1.700469369e+09
1700469369
1700469370 Observer liuSi=new LiuSi();
1700469371
1700469372 //定义出韩非子
1700469373
1700469374 HanFeiZi hanFeiZi=new HanFeiZi();
1700469375
1700469376 //我们后人根据历史,描述这个场景,有三个人在观察韩非子
1700469377
1700469378 hanFeiZi.addObserver(liSi);
1700469379
1700469380 hanFeiZi.addObserver(wangSi);
1700469381
1700469382 hanFeiZi.addObserver(liuSi);
1700469383
1700469384 //然后这里我们看看韩非子在干什么
1700469385
1700469386 hanFeiZi.haveBreakfast();
1700469387
1700469388 }
1700469389
1700469390 }
1700469391
1700469392 运行结果如下所示:
1700469393
1700469394 韩非子:开始吃饭了……
1700469395
1700469396 李斯:观察到李斯活动,开始向老板汇报了……
1700469397
1700469398 李斯:报告,秦老板!韩非子有活动了–>韩非子在吃饭
1700469399
1700469400 李斯:汇报完毕……
1700469401
1700469402 王斯:观察到韩非子活动,自己也开始活动了……
1700469403
1700469404 王斯:因为韩非子在吃饭——所以我悲伤呀!
1700469405
1700469406 王斯:哭死了……
1700469407
1700469408 刘斯:观察到韩非子活动,开始动作了……
1700469409
1700469410 刘斯:因为韩非子在吃饭——所以我快乐呀!
1700469411
1700469412 刘斯:乐死了
1700469413
1700469414 好了,结果也正确了,也符合开闭原则了,同时也实现类间解耦,想再加观察者?继续实现Observer接口就成了,这时候必须修改Client程序,因为你的业务都发生了变化。这就是观察者模式。
1700469415
1700469416
1700469417
1700469418
[ 上一页 ]  [ :1.700469369e+09 ]  [ 下一页 ]