分享一个PHP观察者模式的应用实例(附注释)
php 观察者模式应用场景实例详解

代码
_observers as $obs )
$obs->onBuyTicketOver ( $this, $ticket ); //$this 可用来获取主题类句柄,在通知中使用
}
//添加通知
public function addObserver($observer) //添加N个通知
{
$this->_observers [] = $observer;
}
}
#=========================定义多个通知====================
//短信日志通知
class HipiaoMSM implements ITicketObserver
{
public function onBuyTicketOver($sender, $ticket)
{
echo date( 'Y-m-d H:i:s' ),"短信日志记录:购票成功:$ticket
";
}
}
//文本日志通知
class HipiaoTxt implements ITicketObserver
{
public function onBuyTicketOver($sender, $ticket)
{
echo date('Y-m-d H:i:s'),"文本日志记录:购票成功:$ticket
";
}
}
//抵扣卷赠送通知
class HipiaoDiKou implements ITicketObserver
{
public function onBuyTicketOver($sender, $ticket)
{
echo date('Y-m-d H:i:s'),"赠送抵扣卷:购票成功:$ticket 赠送10元抵扣卷1张
";
}
}
#============================用户购票====================
$buy = new HipiaoBuy ();
//根据不同业务逻辑加入各种通知
$buy->addObserver( new HipiaoMSM() ); //把短信通知类对象添加$_observers数组中
$buy->addObserver( new HipiaoTxt() ); //把文本通知类对象添加$_observers数组中
$buy->addObserver( new HipiaoDiKou() );//把赠送通知类对象添加$_observers数组中
//购票
$buy->buyTicket("一排一号");
远行结果:
2017-02-10 10:50:51 短信日志记录:购票成功:一排一号 2017-02-10 10:50:51 文本日志记录:购票成功:一排一号 2017-02-10 10:50:51 赠送抵扣卷:购票成功:一排一号 赠送 10 元抵扣卷 1 张
分享名称:分享一个PHP观察者模式的应用实例(附注释)
链接地址:http://www.jxjierui.cn/article/cceiisd.html


咨询
建站咨询
