最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年09月19日 09:52:30   作者:巴八靈  
這篇文章主要介紹了php設(shè)計模式之觀察者模式定義與用法,結(jié)合完整實例形式詳細分析了php觀察者模式概念、原理、定義與使用方法,代碼注釋包含詳盡的說明,需要的朋友可以參考下

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

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

運行結(jié)果:

我是零售店用戶
我是經(jīng)銷商用戶

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

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

相關(guān)文章

最新評論

衢州市| 康保县| 西乡县| 大港区| 内丘县| 五莲县| 天台县| 广南县| 连江县| 鲁甸县| 阳原县| 微山县| 独山县| 边坝县| 综艺| 莱阳市| 隆林| 敦化市| 通海县| 博罗县| 应城市| 西乌珠穆沁旗| 界首市| 怀化市| 桦川县| 云林县| 汉中市| 普洱| 大姚县| 无为县| 宝山区| 大英县| 安吉县| 林芝县| 西乡县| 涡阳县| 神农架林区| 花莲县| 寻乌县| 白河县| 华池县|