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();
  • 相关阅读:
    微信公众号支付JSAPI,提示:2支付缺少参数:appId
    Application对象
    Apache安装和文件配置
    Apache编译教程
    MS4W安装教程
    MapServer教程2
    Tomcat修改源码,重新编译
    MapServer教程
    QGIS SDK下载
    OpenStreetMap全球库
  • 原文地址:https://www.cnblogs.com/shengChristine/p/10969681.html
Copyright © 2011-2022 走看看