本文实例讲述了PHP观察者模式的应用。分享给大家供大家参考,具体如下:
rush: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 () ); //根据不同业务逻辑加入各种通知 $buy->addobserver ( new HipiaoTxt () ); $buy->addobserver ( new HipiaoDiKou () ); //购票 $buy->buyTicket ( "一排一号" ); ?>
"); } } //文本日志通知 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 () ); //根据不同业务逻辑加入各种通知 $buy->addobserver ( new HipiaoTxt () ); $buy->addobserver ( new HipiaoDiKou () ); //购票 $buy->buyTicket ( "一排一号" ); ?>
运行结果如下:
rush:xhtml;">
2017-02-03 10:25:45 短信日志记录:购票成功:一排一号
2017-02-03 10:25:45 文本日志记录:购票成功:一排一号
2017-02-03 10:25:45 赠送抵扣卷:购票成功:一排一号 赠送10元抵扣卷1张。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。