• PHP学习之观察者模式


    <?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();
  • 相关阅读:
    Linux命令——mkdir
    UNIX 高手的 10 个习惯
    Linux命令——pwd
    Linux命令——cd命令
    Linux命令——ls命令
    denyhost安装脚本
    三台服务器无需密码相互访问
    字符串方法
    nginx简易安装
    shell 条件判断语句整理
  • 原文地址:https://www.cnblogs.com/shengChristine/p/10969681.html
Copyright © 2020-2023  润新知