PHP 观察者模式的深入分析

内容摘要
这篇文章主要为大家详细介绍了PHP 观察者模式的深入分析,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
代码如下所示:
代码如下:
文章正文

这篇文章主要为大家详细介绍了PHP 观察者模式的深入分析,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!

代码如下所示:

代码如下:


//被察者抽象类
class Observed implements SplSubject{
    protected $_name;
    protected $_observers;

//实例化,生成一个观察者对象 public function __construct(){ $this->_observers = new SplObjectStorage(); }

// 添加观察者对象 public function attach(SplObserver $observer){ $this->_observers->attach($observer); }

//删除观者对象 public function detach(SplObserver $observer){ $this->_observers->detach($observer); }

//通知消息 public function notify(){ foreach($this->_observers as $observer){ $observer->showMessage($this); } }

//普通方法: 设置值 public function setName($name){ $this->_name = $name; $this->notify(); }

//普通方法: 获取值 public function getName(){ return $this->_name; }

//普通方法:设置年龄 public function setAge($age){ $this->age = $age; foreach($this->_observers as $observer){ $observer->showAge($this->_name,$this->age); } }

}

// 观察者抽象类class Observer implements SplObserver{

//显示消息提示 public function showMessage(SplSubject $obj){ $user = $obj->getName(); if($user==='admin'){ echo '您好, ',$user,'欢迎您进入管理后台<br/>'; }else{ echo "你好, '$user' 你已经被添加到了用户列表<br/>"; } } //这是继承父类的抽象方法 public function update(SplSubject $subject) {}

//显示个人年龄 public function showAge($name,$age){ echo "<script>alert('$name 的年龄是: $age')</script>"; }}

$subject = new Observed(); //生成一个被观察者对象$observer = new Observer(); //生成一个观察者对象$subject->attach($observer);//把观察者传入到被观察中去$subject->setName('张三'); //调用 setName 方法/** 通过面的 setName 就会调用 $this->notify();* 通过调用 $this->notify()就会调用 $observer->showMessage($this)方法,* 即每个观察者对象的 showMessage($obj)方法;*/$subject->setName('admin');$subject->setAge(24);

注:关于PHP 观察者模式的深入分析的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!