php观察者模式的解决办法
内容摘要
这篇文章主要为大家详细介绍了php观察者模式的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!观察者模式
代码如下:
interfac
对此感兴趣的朋友,看看idc笔记做的技术笔记!观察者模式
代码如下:
interfac
文章正文
这篇文章主要为大家详细介绍了php观察者模式的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
观察者模式代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <code> interface Subject { public function Attach( $Observer ); //添加观察者 public function Detach( $Observer ); //踢出观察者 public function Notify(); //满足条件时通知观察者 public function SubjectState( $Subject ); //观察条件 } class Boss Implements Subject { public $_action ; private $_Observer ; public function Attach( $Observer ) { $this ->_Observer[] = $Observer ; } public function Detach( $Observer ) { $ObserverKey = array_search ( $Observer , $this ->_Observer); if ( $ObserverKey !== false) { unset( $this ->_Observer[ $ObserverKey ]); } } public function Notify() { foreach ( $this ->_Observer as $value ) { $value ->Update(); } } public function SubjectState( $Subject ) { $this ->_action = $Subject ; } } abstract class Observer { protected $_UserName ; protected $_Sub ; public function __construct( $Name , $Sub ) { $this ->_UserName = $Name ; $this ->_Sub = $Sub ; } public abstract function Update(); //接收通过方法 } class StockObserver extends Observer { public function __construct( $name , $sub ) { parent::__construct( $name , $sub ); } public function Update() { echo $this ->_Sub->_action. $this ->_UserName. " 你赶快跑..." ; } } $huhansan = new Boss(); //被观察者 $gongshil = new StockObserver( "三毛" , $huhansan ); //初始化观察者 $huhansan ->Attach( $gongshil ); //添加一个观察者 $huhansan ->Attach( $gongshil ); //添加一个相同的观察者 $huhansan ->Detach( $gongshil ); //踢出基中一个观察者 $huhansan ->SubjectState( "警察来了" ); //达到满足的条件 $huhansan ->Notify(); //通过所有有效的观察者 </code> |
注:关于php观察者模式的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释