知识大全 php设计模式之观察者模式的应用详解
Posted 知
篇首语:志不强者智不达,言不信者行不果。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 php设计模式之观察者模式的应用详解相关的知识,希望对你有一定的参考价值。
代码如下: <?php //抽象主题 interface Subject public function attach($observer); public function detach($observer); public function notifyObservers(); //具体主题 class ConcreateSubject implements Subject private $_observers; public function __construct() $this >_observers = array(); public function attach($observer) return array_push($this >_observers $observer); public function detach($observer) $index = array_search($observer $this >_observers); if($index === false || !array_key_exists($index $this >_observers)) return false; unset($this >_observer[$index]); return true; public function notifyObservers() if(!is_array($this >_observers)) return false; foreach($this >_observers as $observer) $observer >update(); return true; //抽象观察者 interface Observer public function update(); //具体观察者 class ConcreteObserver implement Observer private $_name; public function __construct($name) $this >_name = $name; public function update() echo Observer $this >_name has notified<br/> ; //客户端 class Client public static function main() $subject = new ConcreteSubject(); //新增第一个观察者 $observer = new ConcreteObserver( Martin ); $subject >attach($observer ); //通知 $subject >notifyObservers(); //新增第二个观察者 $observer = new ConcreteObserver( jaky ); $subject >attach($observer ); //通知 $subject >notifyObservers(); //删除观察者 $subject >deatch($observer ); //通知 $subject >notifyObservers(); Client::main(); ?> cha138/Article/program/PHP/201311/21261相关参考