• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php设计模式之观察者模式定义与用法经典示例

    本文实例讲述了php设计模式之观察者模式定义与用法。分享给大家供大家参考,具体如下:

    ?php
    /**
     * @desc 利用观察者模式,实现不同用户进入显示不同的内容
     * 1.主题
     * 2.观察者接口
     * 3.观察者
     * ***/
    interface Observer{
      //添加观察者对象
      public function attach($observer);
      //删除观察者对象
      public function detach($observer);
      //执行观察者需要执行的方法
      public function doIt();
    }
    class User implements Observer{
      public $obj = [];
      /*
      *@desc 传递的对象不在存储的obj对象中则将对象存储到obj中
      */
      public function attach($observer){
        if(!in_array($observer,$this->obj)){
          $this->obj[] = $observer;
        }
      }
      /**
       * @desc 取消观察者观察
       * **/
      public function detach($observer){
        $key = array_search($observer, $this->obj);
        if($key){
          unset($this->obj[$key]);
        }
      }
      /***
       * @desc 获取所有被观察者的对象,执行观察
       * **/
      public function doIt(){
        if(!empty($this->obj)){
          foreach ($this->obj as $v){
            $v->active();
          }
        }
      }
    }
    /**
     * @desc 观察者接口
     * **/
    interface obsUser{
      public function active();
    }
    /*
     * @实现零售店用户实现方法类
     * **/
    class storeUser implements obsUser{
      public function active(){
        echo "我是零售店用户\n";
      }
    }
    /**
     * @desc 实现经销商用户方法类
     * **/
    class supplierUser implements obsUser{
      public function active(){
        echo "我是经销商用户\n";
      }
    }
    /*
     * 实例化观察者接口类
     * **/
    $user = new User();
    //添加门店用户类到观察者对象
    $user->attach(new storeUser());
    //添加经销商用户类到观察者对象
    $user->attach(new supplierUser());
    //监控观察者动作并输出结果
    $user->doIt();
    
    

    运行结果:

    我是零售店用户
    我是经销商用户

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • php设计模式之观察者模式实例详解【星际争霸游戏案例】
    • PHP设计模式之观察者模式入门与应用案例详解
    • PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
    • PHP设计模式之观察者模式定义与用法分析
    • PHP设计模式(观察者模式)
    上一篇:php设计模式之职责链模式定义与用法经典示例
    下一篇:PHP实现统计代码行数小工具
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php设计模式之观察者模式定义与用法经典示例 php,设计模式,之,观察者,