php设计模式-观察者模式
Posted itxds
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php设计模式-观察者模式相关的知识,希望对你有一定的参考价值。
/** * 观察对象 * Undocumented class */ class User implements SplSubject { public $loginCnt; private $observers; public function __construct() { $this->observers = new SplObjectStorage; } public function login() { $this->loginCnt = rand(1,30); $this->notify(); } 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->update($this); } } } /** * 观察者 * Undocumented class */ class Security implements SplObserver { public function update(SplSubject $subject) { if ($subject->loginCnt > 10) { echo ‘登录次数过多‘; } else { echo ‘登录正常‘; } } } $user = new User(); $user->attach(new Security()); $user->login();
以上是关于php设计模式-观察者模式的主要内容,如果未能解决你的问题,请参考以下文章
设计模式 行为型模式 -- 观察者模式(发布-订阅(Publish/Subscribe)模式)