濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > PHP觀察者模式定義與用法實(shí)例分析

PHP觀察者模式定義與用法實(shí)例分析

熱門(mén)標(biāo)簽:十堰ai電話機(jī)器人效果怎么樣 上海公司外呼系統(tǒng)線路 臨沂智能電銷機(jī)器人軟件 銀川ai電話機(jī)器人 電梯外呼線路板維修視頻 安陽(yáng)自動(dòng)外呼系統(tǒng)價(jià)格是多少 地圖標(biāo)注風(fēng)向標(biāo) 浙江外呼電話系統(tǒng)軟件 芒果電銷機(jī)器人

本文實(shí)例講述了PHP觀察者模式定義與用法。分享給大家供大家參考,具體如下:

我理解的觀察者模式就是,當(dāng)我們觸發(fā)一個(gè)事件的時(shí)候,想要把這個(gè)操作告訴給我想要告訴的對(duì)象,讓他們都執(zhí)行這個(gè)操作,就是將他們綁定到這個(gè)事件下。

1.定義一個(gè)基類(用于添加觀察者也就是我想要通知的對(duì)象,還有通知觀察者)

EventGenerator.php

?php
abstract class EventGenerator
{
  //存儲(chǔ)觀察者,因?yàn)榭梢杂卸鄠€(gè)要通知的對(duì)象,所以是一個(gè)數(shù)組
  private $observers = array();
  //添加觀察者,也就是我想要通知的對(duì)象
  public function addObserver($observer)
  {
    $this->observers[] = $observer;
  }
  //通知觀察者
  public function notify()
  {
    //取出所有的對(duì)象去執(zhí)行操作
    foreach($this->observers as $observer)
    {
      //這里我寫(xiě)一個(gè)update方法,這里就要求我所有的通知對(duì)象必須要有update操作,所以一會(huì)我會(huì)定義一個(gè)借口,讓所有的觀察者強(qiáng)制實(shí)現(xiàn)這個(gè)方法
      $observer->update();
    }
  }
}
?>

定義接口文件,讓所有觀察者實(shí)現(xiàn)update方法Observer.php

?php
interface Observer
{
  function update();
}
?>

定義實(shí)現(xiàn)觀察者模式的文件Event.php

?php
header('Content-Type:text/html;charset=utf-8');
define('BASEDIR', __DIR___);
require 'Config.php';
spl_autoload_register('Config::autoload');
//定義事件類繼承基類
class Event extends EventGenerator
{
  //當(dāng)觸發(fā)這個(gè)事件的時(shí)候通知所有的觀察者
  public function trigger()
  {
    echo '我要開(kāi)始更新了??!br/>\n';
    //基類的通知方法
    $this->notify();
  }
}
//添加觀察者1
class Observer1 implements Observer
{
  public function update()
  {
    echo '我是觀察者1,我收到你的通知了!我要干我該干的了!br/>\n';
  }
}
//添加觀察者2
class Observer2 implements Observer
{
  public function update()
  {
    echo '我是觀察者2,我收到你的通知了!我要干我該干的了!br/>\n';
  }
}
//下面就要開(kāi)始測(cè)試了!
$event = new Event();
//添加觀察者到這個(gè)事件里
$event->addObserver(new Observer1);
$event->addObserver(new Observer2);
//執(zhí)行trigger操作
$event->trigger();
//這時(shí)候就會(huì)顯示!
//我要開(kāi)始更新了?。?
//我是觀察者1,我收到你的通知了!我要干我該干的了!
//我是觀察者2,我收到你的通知了!我要干我該干的了!
?>

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP設(shè)計(jì)模式之觀察者模式入門(mén)與應(yīng)用案例詳解
  • PHP 觀察者模式深入理解與應(yīng)用分析
  • php模式設(shè)計(jì)之觀察者模式應(yīng)用實(shí)例分析
  • PHP使用觀察者模式處理異常信息的方法詳解
  • php設(shè)計(jì)模式之觀察者模式定義與用法經(jīng)典示例
  • PHP中常用的三種設(shè)計(jì)模式詳解【單例模式、工廠模式、觀察者模式】
  • PHP觀察者模式實(shí)例分析【對(duì)比JS觀察者模式】
  • PHP設(shè)計(jì)模式之觀察者模式定義與用法分析
  • 解析PHP觀察者模式Observer

標(biāo)簽:遂寧 徐州 荊門(mén) 常州 武威 遵義 寧夏 吐魯番

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP觀察者模式定義與用法實(shí)例分析》,本文關(guān)鍵詞  PHP,觀察者,模式,定義,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP觀察者模式定義與用法實(shí)例分析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PHP觀察者模式定義與用法實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    高雄市| 敦煌市| 赤峰市| 星子县| 凭祥市| 申扎县| 张家川| 措美县| 鄯善县| 尼玛县| 石柱| 西贡区| 延边| 独山县| 永嘉县| 科技| 廉江市| 长宁区| 沧源| 宁国市| 瑞丽市| 潜山县| 奉贤区| 黄梅县| 黄大仙区| 远安县| 抚顺县| 如皋市| 南雄市| 宜城市| 平原县| 永顺县| 旬邑县| 仲巴县| 密云县| 乌什县| 苍山县| 新巴尔虎右旗| 宁夏| 焦作市| 高邑县|