介绍
这期内容当中小编将会给大家带来有关如何在PHP中实现一个观察者模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>观察者模式UML图:强>
在PHP SPL中已经提供SplSubject和SqlOberver接口
interface SplSubject { function 才能;附加(SplObserver 观察者美元); function 才能;分离(SplObserver 观察者美元); function 才能通知(); } interface SqlObserver { function 才能更新(SplSubject 主题美元); }
下面具体实现上面例子
class Subject implements SplSubject { private 才能;美元观察员; public 才能;function 附加(SplObserver 观察者美元) {才能 ,,,if (! in_array(观察者,美元,美元这→观察员)),{ ,,,,,这个→美元观察家[],=,观察者美元; ,,,} ,,} public 才能;function 分离(SplObserver 观察者美元) {才能 ,,,if (false !=, ($ index =,函数(观察者,美元,美元这→观察员))),{ ,,,,,设置($ this→观察家[美元指数]); ,,,} ,,} public 才能;function  post () {才能 ,,,//职位相关的代码 ,,,这美元→通知(); ,,} private 才能;function  notify () {才能 ,,,foreach ($ this→observers as 观察者美元),{ ,,,,,观察者→美元更新($); ,,,} ,,} public 才能;function  setCount(美元数) {才能 ,,,echo “数据量加“,只数美元; ,,} public 才能;function  setIntegral(积分) {才能 ,,,,echo “积分量加“,只美元积分; ,,} } class Observer1  implements SplObserver { public 才能;function 更新(主题) {才能 ,,,主题→美元,setCount (1); ,,} } class Observer2  implements SplObserver { public 才能;function 更新(主题) {才能 ,,,主题→美元,setIntegral (10); ,,} } class 客户端 { public 才能;function 测试() {才能 ,,,subject 美元;=,new 主题(); ,,,主题→美元附加(new Observer1 ()); ,,,主题→美元附加(new Observer2 ()); ,,,主题→美元post();//输出:数据量加1,积分量加10 ,,} }
上述就是小编为大家分享的如何在PHP中实现一个观察者模式了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。