欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

php 观察者模式怎么用,php怎么实现观察者模式

发布时间:2025/3/15 php 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 php 观察者模式怎么用,php怎么实现观察者模式 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

php实现观察者模式的方法:首先创建一个PHP示例文件;然后实现观察者向主题注册;最后对注册树进行遍历,让每个对象实现其接口提供的操作即可。

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

PHP实现观察者模式

“观察者模式”的观察者三个字信息量很大。玩过很多网络游戏的童鞋们应该知道,即便是斗地主,除了玩家,还有一个角色叫“观察者"。在我们今天他谈论的模式设计中,观察者也是如此。首先,要有一个“主题”。只有有了一个主题,观察者才能搬着小板凳儿聚在一堆。其次,观察者还必须要有自己的操作。否则你聚在一堆儿没事做也没什么意义。

从面向过程的角度来看,首先是观察者向主题注册,注册完之后,主题再通知观察者做出相应的操作,整个事情就完了。

从面向对象的角度来看,主题提供注册和通知的接口,观察者提供自身操作的接口。(这些观察者拥有一个同一个接口。)观察者利用主题的接口向主题注册,而主题利用观察者接口通知观察者。耦合度相当之低。

如何实现观察者注册?通过前面的注册者模式很容易给我们提供思路,把这些对象加到一棵注册树上就好了嘛。如何通知?这就更简单了,对注册树进行遍历,让每个对象实现其接口提供的操作<?php

// 主题接口

interface Subject{

public function register(Observer $observer);

public function notify();

}

// 观察者接口

interface Observer{

public function watch();

}

// 主题

class Action implements Subject{

public $_observers=array();

public function register(Observer $observer){

$this->_observers[]=$observer;

}

public function notify(){

foreach ($this->_observers as $observer) {

$observer->watch();

}

}

}

// 观察者

class Cat implements Observer{

public function watch(){

echo "Cat watches TV


";

}

}

class Dog implements Observer{

public function watch(){

echo "Dog watches TV


";

}

}

class People implements Observer{

public function watch(){

echo "People watches TV


";

}

}

// 应用实例

$action=new Action();

$action->register(new Cat());

$action->register(new People());

$action->register(new Dog());

$action->notify();

【推荐学习:《PHP视频教程》】

新人创作打卡挑战赛发博客就能抽奖!定制产品红包拿不停!

总结

以上是生活随笔为你收集整理的php 观察者模式怎么用,php怎么实现观察者模式的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。