php设计模式之观察者模式定义与用法经典示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-12-19 12:43:45 浏览: 评论:0
这篇文章主要介绍了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(!emptyempty($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();
运行结果:
我是零售店用户
我是经销商用户
Tags: php设计模式 php观察者模式
相关文章
- ·php设计模式——单例模式(Singleton)的常见应用场景(2015-04-15)
- ·php 设计模式之单例模式例子(2016-07-27)
- ·PHP设计模式之:单例模式的学习笔记(2016-07-29)
- ·PHP设计模式之:注册模式入门教程(2016-07-29)
- ·PHP设计模式之:适配器模式入门教程(2016-07-29)
- ·PHP设计模式之:数据映射模式教程(2016-07-29)
- ·PHP设计模式之:观察者模式学习笔记(2016-07-29)
- ·PHP常用设计模式之委托设计模式(2021-07-09)
- ·php设计模式之委托模式(2021-07-09)
- ·PHP设计模式之观察者模式实例(2021-07-10)
- ·PHP设计模式之模板方法模式定义与用法详解(2021-09-06)
- ·PHP设计模式之状态模式定义与用法详解(2021-09-06)
- ·PHP设计模式之装饰器模式定义与用法详解(2021-09-06)
- ·PHP设计模式之适配器模式定义与用法详解(2021-09-06)
- ·PHP设计模式之原型模式定义与用法详解(2021-09-06)
- ·PHP设计模式之工厂模式定义与用法详解(2021-09-06)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)