侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

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

2022-06-27 星期一 / 0 评论 / 0 点赞 / 62 阅读 / 2818 字

本文实例讲述了php设计模式之观察者模式定义与用法。分享给大家供大家参考,具体如下:<php/** * @desc 利用观察者模式,实现不同用户进入显示不同的内容 * 1.主题 * 2.观察者接口 * 3.观察者 * *

本文实例讲述了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程序设计有所帮助。

广告 广告

评论区