当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP学习之观察者模式

PHP学习之观察者模式

2019年06月04日  | 移动技术网IT编程  | 我要评论
<?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();

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网