新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
分享一個(gè)PHP觀察者模式的應(yīng)用實(shí)例(附注釋)
php 觀察者模式應(yīng)用場(chǎng)景實(shí)例詳解

代碼
_observers as $obs )
$obs->onBuyTicketOver ( $this, $ticket ); //$this 可用來(lái)獲取主題類句柄,在通知中使用
}
//添加通知
public function addObserver($observer) //添加N個(gè)通知
{
$this->_observers [] = $observer;
}
}
#=========================定義多個(gè)通知====================
//短信日志通知
class HipiaoMSM implements ITicketObserver
{
public function onBuyTicketOver($sender, $ticket)
{
echo date( 'Y-m-d H:i:s' ),"短信日志記錄:購(gòu)票成功:$ticket
";
}
}
//文本日志通知
class HipiaoTxt implements ITicketObserver
{
public function onBuyTicketOver($sender, $ticket)
{
echo date('Y-m-d H:i:s'),"文本日志記錄:購(gòu)票成功:$ticket
";
}
}
//抵扣卷贈(zèng)送通知
class HipiaoDiKou implements ITicketObserver
{
public function onBuyTicketOver($sender, $ticket)
{
echo date('Y-m-d H:i:s'),"贈(zèng)送抵扣卷:購(gòu)票成功:$ticket 贈(zèng)送10元抵扣卷1張
";
}
}
#============================用戶購(gòu)票====================
$buy = new HipiaoBuy ();
//根據(jù)不同業(yè)務(wù)邏輯加入各種通知
$buy->addObserver( new HipiaoMSM() ); //把短信通知類對(duì)象添加$_observers數(shù)組中
$buy->addObserver( new HipiaoTxt() ); //把文本通知類對(duì)象添加$_observers數(shù)組中
$buy->addObserver( new HipiaoDiKou() );//把贈(zèng)送通知類對(duì)象添加$_observers數(shù)組中
//購(gòu)票
$buy->buyTicket("一排一號(hào)");
遠(yuǎn)行結(jié)果:
2017-02-10 10:50:51 短信日志記錄:購(gòu)票成功:一排一號(hào) 2017-02-10 10:50:51 文本日志記錄:購(gòu)票成功:一排一號(hào) 2017-02-10 10:50:51 贈(zèng)送抵扣卷:購(gòu)票成功:一排一號(hào) 贈(zèng)送 10 元抵扣卷 1 張
當(dāng)前題目:分享一個(gè)PHP觀察者模式的應(yīng)用實(shí)例(附注釋)
文章路徑:http://fisionsoft.com.cn/article/cceiisd.html


咨詢
建站咨詢
