求助信当对象间存在一对多关系时,则使用观察者模式。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。
<?phpclass subject{ private $obrver_list; private $num; public function __construct(){ $this->obrver_list = new spldoublylinkedlist(); } public function attach(obrver $obrver){ $this->obrver_list->push($obrver); } publ猪腰的做法ic function tnum($num){ $this->num = $num; $this->notify(); } public function getnum(){ return $this->num; } public function notify(){ foreach ($this->obrver_list as $obrver) { $obrver->update(); } }}abstract class obrver{ public $subj; public function __construct(subject $subj){ $this->subj = $变焦subj; $this->subj->attach($this); } abstract function update();}class binobrver extends obrver{ public function update(){ echo "二进制更新:".decbin($this->subj->getnum())."\n"; }}class octobrver extends obrver{ public function update(){ echo "八进制更新:".decoct($this->subj->getnum())."\n"; }}class hexobrver extends obrver{ public function update(){ echo "十六进制更新:".dechex($this->subj->getnum())."帅的网名\n"; }}$subject = new subject(食品安全培训内容);new binobrver($subject);new octobrver($subject);new hexobrver($subject);$subject->tnum(22);
运行结果:
二进制更新:10110八进制更新:26十六进制更新:16
本文发布于:2023-04-07 06:33:15,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/a4cbc65cbe55d7317be70ddfb4b5971c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:【php设计模式】观察者模式.doc
本文 PDF 下载地址:【php设计模式】观察者模式.pdf
留言与评论(共有 0 条评论) |