PHP5+标准函数库观察者之实现
程序员文章站
2022-03-26 09:17:20
...
PHP的观察者设计模式实现相对简单,但是PHP5+版本中已经有标准库类库支持,我们只需简单继承并实现就可以了。
被观察者:实现标准接口类库SplObserver。一个update方法。
测试调用(同目录下):
输出:
观察者:实现标准接口类库SplSubject。一个注册方法:attach,一个取消注册方法:detach。一个通知方法:nofity。
observers =array(); } public function attach(SplObserver $observer){ $this->observers[] = $observer; } public function detach(SplObserver $observer){ if($idx = array_search($observer, $this->observers,true)) { unset($this->observers[$idx]); } } /** * * Notify observers one by one (main entry) * * @param none * @return none */ public function notify(){ foreach($this->observers as $observer){ $observer->update($this); } } public function setValue($value){ $this->value = $value; //$this->notify(); } public function getValue(){ return $this->value; }}
被观察者:实现标准接口类库SplObserver。一个update方法。
getValue(); }}
getValue(); }}
测试调用(同目录下):
attach(new TSPLObserver());$observer1 = new TSPLObserver1();$subject->attach($observer1);//$subject->attach(new TSPLObserver2());//$subject->detach($observer1);$subject->notify();exit();
输出:
>php basic.php
The new state of subject
The new state of subject one
上一篇: PHP学习笔记-非常有用的 PHP 代码片段(1)
下一篇: html time标签怎么用
推荐阅读
-
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
-
JS设计模式之观察者模式实现实时改变页面中金额数的方法
-
机器学习——SVM之python实现数据样本标准化和归一化
-
PHP使用标准库spl实现的观察者模式示例
-
PHP5+标准函数库观察者之实现_PHP教程
-
使用php标准库spl在实现观察者模式
-
PHP5+标准函数库观察者之实现_PHP教程
-
Javascript设计模式之观察者模式的多个实现版本实例_javascript技巧
-
Javascript设计模式之观察者模式的多个实现版本实例_javascript技巧
-
PHP设计模式之JS实现观察者模式 c 观察者模式 android 观察者模式 ios 观察者模