<?php //观察者模式涉及到两个类 //男人类 和女朋友类 //男人类对象小明, 女朋友类对象小花、小丽 class man { //用了存放观察者 protected $observers=[]; /** * 添加观察者方法 * * @param [type] $observers * @return void */ function addobserver($observers) { $this->observers[]=$observers; } /** * 花钱方法 * * @return void */ function buy() { //当被观察者做出这个行为的时候,让观察者得到通知,并且做出一定的反应 foreach($this->observers as $girl){ $girl->dongjie(); } } /** * 删除观察者方法 * * @param [type] $observer * @return void */ function delobserver($observer) { $key=array_search($observer,$this->observers); array_splice($this->observers,$key,1); } } class girlfriend { function dongjie() { echo '你的男朋友正在花钱,马上冻结他的银行卡!<br/>'; } } //创建对象 $xiaoming=new man(); $xiaohua=new girlfriend(); $xiaoli=new girlfriend(); //添加观察者 $xiaoming->addobserver($xiaohua); $xiaoming->addobserver($xiaoli); $xiaoming->delobserver($xiaoli); $xiaoming->buy();
如对本文有疑问, 点击进行留言回复!!
[ACTF2020 新生赛]Include 1【文件包含】【读取代码】
算法题解 - 牛客编程巅峰赛S1第6场 - 黄金&钻石&王者组
推荐一个程序员必备网站之一:Dev Hints ,非常实用!
网友评论