zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    【项目】项目1
    Python脚本1
    Python基础24
    Python基础23(习惯)
    01-Spring(1)
    12-Shell(2)
    11-Shell(1)
    10-搭建EE环境
    09-常用指令(3)
    08-常用指令(2)
  • 原文地址:https://www.cnblogs.com/shengChristine/p/10969681.html
Copyright © 2011-2022 走看看