php实现观察者模式
<meta charset=‘utf-8‘ /> <title>观察者模式</title> <?php class Tongzhi implements SPLSubject { protected $subs = array(); public $username = ‘我是被观察者‘; public function __construct(){ } public function attach(SPLObserver $sub){ $this->subs[] = $sub; } public function detach(SPLObserver $sub){ $keys = array_keys($this->subs,$sub); $key = $keys[0]; unset($this->subs[$key]); } public function notify(){ foreach ($this->subs as $value) { $value->update($this); } } } class Obs1 implements SPLObserver { public function update(SPLSubject $tz){ echo $tz->username.‘,我是观察者1<br />‘; } } class Obs2 implements SPLObserver { public function update(SPLSubject $tz){ echo $tz->username.‘,我是观察者2<br />‘; } } class Obs3 implements SPLObserver { public function update(SPLSubject $tz){ echo $tz->username.‘,我是观察者3<br />‘; } } $tz = new Tongzhi; $tz->attach(new Obs1); $tz->attach(new Obs2); $tz->detach(new Obs2); $tz->attach(new Obs3); $tz->notify(); ?>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。