PHP对观察者模式的原生支持的代码详解
程序员文章站
2022-04-01 16:37:19
...
PHP对观察者模式的原生支持的代码详解
<?php // 观察者模式 // PHP(SPL)原生支持 /* 类摘要 SplSubject { abstract public void attach ( SplObserver $observer ); abstract public void detach ( SplObserver $observer ); abstract public void notify ( void ); } SplObserver { abstract public void update ( SplSubject $subject ); } SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess { } */ class ConcreteSubject implements SplSubject { private $storage; public function construct() { $this->storage = new SplObjectStorage(); } public function attach(SplObserver $obs) { $this->storage->attach($obs); } public function detach(SplObserver $obs) { $this->storage->detach($obs); } public function notify() { foreach($this->storage as $ol) { $ol->update($this); } } public function doAct() { echo 'DoAct ... <br/>'; $this->notify(); } } /** * concrete observer 1 */ class Observer1 implements SplObserver { public function update(SplSubject $sub) { echo 'Observer one updated! <br/>'; } } /** * concrete observer 2 */ class Observer2 implements SplObserver { public function update(SplSubject $sub) { echo 'Observer two updated! <br/>'; } } // test code $sub = new ConcreteSubject(); $sub->attach(new Observer1()); //add observer $sub->attach(new Observer1()); $sub->attach(new Observer2()); $sub->doAct();
以上就是PHP对观察者模式的原生支持的代码详解的详细内容,更多请关注其它相关文章!
推荐阅读
-
php中使用parse_url对网址进行解析的实现代码parse_url详解
-
PHP使用观察者模式处理异常信息的方法详解
-
ruby、javascript、php中的观察者模式实现代码
-
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
-
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
-
php设计模式之观察者模式的应用详解
-
PHP 观察者模式的实现代码
-
PHP 观察者模式的实现代码
-
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)_PHP
-
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)_PHP