您的位置:首页 > 教程 > PHP编程 > php设计模式之观察者模式定义与用法经典示例

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

2020-09-08 07:27:19 来源:易采站长站 作者:

php设计模式之观察者模式定义与用法经典示例,观察者,用户,我是,对象,零售店

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

易采站长站,站长之家为您整理了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设计模式之观察者模式定义与用法经典示例内容提出宝贵意见

微信扫一扫

易采站长站微信账号