主頁(yè) > 知識(shí)庫(kù) > php設(shè)計(jì)模式之觀察者模式定義與用法經(jīng)典示例

php設(shè)計(jì)模式之觀察者模式定義與用法經(jīng)典示例

熱門(mén)標(biāo)簽:長(zhǎng)春人工外呼系統(tǒng)服務(wù)商 高德地圖標(biāo)注家 廣州防封卡外呼系統(tǒng)多少錢(qián)一個(gè)月 外呼系統(tǒng)撥打暫時(shí)無(wú)法接通 怎么向銷(xiāo)售公司推銷(xiāo)外呼系統(tǒng) 仁和怎么申請(qǐng)400開(kāi)頭的電話(huà) 廣東地市地圖標(biāo)注 哪里辦理400電話(huà) 江西手機(jī)自動(dòng)外呼防封系統(tǒng)是什么

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

?php
/**
 * @desc 利用觀察者模式,實(shí)現(xiàn)不同用戶(hù)進(jìn)入顯示不同的內(nèi)容
 * 1.主題
 * 2.觀察者接口
 * 3.觀察者
 * ***/
interface Observer{
  //添加觀察者對(duì)象
  public function attach($observer);
  //刪除觀察者對(duì)象
  public function detach($observer);
  //執(zhí)行觀察者需要執(zhí)行的方法
  public function doIt();
}
class User implements Observer{
  public $obj = [];
  /*
  *@desc 傳遞的對(duì)象不在存儲(chǔ)的obj對(duì)象中則將對(duì)象存儲(chǔ)到obj中
  */
  public function attach($observer){
    if(!in_array($observer,$this->obj)){
      $this->obj[] = $observer;
    }
  }
  /**
   * @desc 取消觀察者觀察
   * **/
  public function detach($observer){
    $key = array_search($observer, $this->obj);
    if($key){
      unset($this->obj[$key]);
    }
  }
  /***
   * @desc 獲取所有被觀察者的對(duì)象,執(zhí)行觀察
   * **/
  public function doIt(){
    if(!empty($this->obj)){
      foreach ($this->obj as $v){
        $v->active();
      }
    }
  }
}
/**
 * @desc 觀察者接口
 * **/
interface obsUser{
  public function active();
}
/*
 * @實(shí)現(xiàn)零售店用戶(hù)實(shí)現(xiàn)方法類(lèi)
 * **/
class storeUser implements obsUser{
  public function active(){
    echo "我是零售店用戶(hù)\n";
  }
}
/**
 * @desc 實(shí)現(xiàn)經(jīng)銷(xiāo)商用戶(hù)方法類(lèi)
 * **/
class supplierUser implements obsUser{
  public function active(){
    echo "我是經(jīng)銷(xiāo)商用戶(hù)\n";
  }
}
/*
 * 實(shí)例化觀察者接口類(lèi)
 * **/
$user = new User();
//添加門(mén)店用戶(hù)類(lèi)到觀察者對(duì)象
$user->attach(new storeUser());
//添加經(jīng)銷(xiāo)商用戶(hù)類(lèi)到觀察者對(duì)象
$user->attach(new supplierUser());
//監(jiān)控觀察者動(dòng)作并輸出結(jié)果
$user->doIt();

運(yùn)行結(jié)果:

我是零售店用戶(hù)
我是經(jīng)銷(xiāo)商用戶(hù)

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《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ì)模式之觀察者模式實(shí)例詳解【星際爭(zhēng)霸游戲案例】
  • PHP設(shè)計(jì)模式之觀察者模式入門(mén)與應(yīng)用案例詳解
  • PHP中常用的三種設(shè)計(jì)模式詳解【單例模式、工廠(chǎng)模式、觀察者模式】
  • PHP設(shè)計(jì)模式之觀察者模式定義與用法分析
  • PHP設(shè)計(jì)模式(觀察者模式)

標(biāo)簽:海北 黔東 惠州 濮陽(yáng) 梅河口 湘西 文山 廈門(mén)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php設(shè)計(jì)模式之觀察者模式定義與用法經(jīng)典示例》,本文關(guān)鍵詞  php,設(shè)計(jì)模式,之,觀察者,;如發(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è)計(jì)模式之觀察者模式定義與用法經(jīng)典示例》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于php設(shè)計(jì)模式之觀察者模式定義與用法經(jīng)典示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章