PHP学习之观察者模式
程序员文章站
2022-07-02 17:12:53
observers[]=$observers; } /** * 花钱方法 * * @return void */ function buy() { //当被观察者做出这个行为的时候,让观察者得到通知,并且做出一定的反应 foreach($this->observers as $girl){ ... ......
<?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();
下一篇: 模态框(modal)自动居中