PHP中什么是观察者模式?如何运用?
时间:2021-07-03
来源:互联网
标签:
今天PHP爱好者给大家带来对于观察者模式,我们可能并不是那么耳熟闻详,它是一种事件系统,意味着这一模式允许某个类观察另一一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作;观察者模式提供了避免组件之间紧密耦合的另一种方法;因此我们就一起来本篇文章讨论什么是观察者模式吧!
相关推荐:PHP中什么是工厂模式以及工厂方法模式?
观察者:
它是一种事件系统,意味着这一模式允许某个类观察另一一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作;观察者模式提供了避免组件之间紧密耦合的另一种方法;
我们还是以代码为例,我们新建一个文件,然后定义一个类,然后在类里面写入一个成员属性,他是一个数组用来存放观察者,紧接着我们在定义一个方法,这个方法是用来存放观察者和添加观察者的,当被观察者做出行为的时候,让观察者得到通知,并且做出一定反应,代码为例:
<?php
class Man
{
//用来存放观察者
protected $observers = [];
//添加观察者方法
function addObserver($observer)
{
$this->observers[]=$observer;
}
//花钱方法
function buy()
{
//当被观察者做出这个行为的时候,让观察者得到通并且做出一-定的反应
foreach ($this->observers as $girl) {
$girl->pome();
}
}
}
class GirlFriend
{
function pome()
{
echo'我只明白一件事,爱一个人,是那么痛苦<br />';
}
}
//创建对象
$xiaoming = new Man();
$xiaohua =new GirlFriend();
$xiaoli = new GirlFriend();
//添加观察者
$xiaoming->addObserver( $xiaohua);
$xiaoming->addObserver($xiaoli);
$xiaoming->buy();
运行结果如下:

有添加观察者这样一个方法,那就有删除观察者的方法,因此我们还要添加一个删除观察者的方法,
function delObserver($observer)
{
//查找对应值在数组中的键
$key = array_search($observer,$this->observers);
//根据键删除值,并且数组重新索引
array_splice($this->observers, $key, 1);
}
}
//删除
$xiaoming->delObserver( $xiaohua);
代码如下:

以上就是PHP中什么是观察者模式?如何运用?的详细内容,更多请关注php爱好者其它相关文章!
-
PHP目录分隔符DIRECTORY_SEPARATOR常量用法详解 时间:2025-11-21 -
awk数组用法详解(创建、删除、检查、遍历、排序等) 时间:2025-11-21 -
ActionContext构造函数详解 时间:2025-11-21 -
Android ArrayAdapter适配器作用及用法详解 时间:2025-11-21 -
什么是数据库备份?数据库备份有几种方式? 时间:2025-11-21 -
Oracle数据库备份和恢复的几种方法详解 时间:2025-11-21
今日更新
-
抖音火山版网页版官网-抖音火山版网页登录入口
阅读:18
-
欧易合约盘口异常消失原因及应对策略解析
阅读:18
-
deepseek网页版快速登录入口-deepseek在线高效使用指南
阅读:18
-
比特币入门指南_从零开始了解比特币的基础知识
阅读:18
-
欧易理财脱锚事件如何冲击加密市场走势
阅读:18
-
山是什么梗网络热词揭秘 搞笑内涵段子来源解析
阅读:18
-
山水集团是什么梗揭秘其背后爆火原因及真实含义解析
阅读:18
-
学信网四六级成绩查询入口_四六级分数一键查
阅读:18
-
欧易功能模块卡顿问题解析与优化方案
阅读:18
-
比特币到底是什么_简单易懂的加密货币解说
阅读:18










