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 ]
[
下一页 ]