国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php設計模式之單例模式代碼

2024-05-04 23:47:01
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了php設計模式之單例模式的實現代碼,具有一定的參考價值,感興趣的朋友可以參考一下
 

php設計模式之單例模式的例子,供大家參考,具體內容如下

<?php  /**   * php設計模式 單例模式   */  class Fruit{    private static $instanceMap = array();    //protected getter for singleton instances    protected static function getSingleton($className){      //保證單例模式 并且不能從控制器實例化和克隆      if (!isset(self::$instanceMap[$className])) {        $object = new $className;        //Make sure this object inherit from Singleton        if ($object instanceof Fruit) {          self::$instanceMap[$className] = $object;          var_dump($object);        } else {          throw SingletonException("Class '$className' do not inherit from Singleton!");        }      }      return self::$instanceMap[$className];    }    //protected constructor to prevent outside instantiation    protected function __construct(){}    //denie cloning of singleton objects    public final function __clone(){      trigger_error('It is impossible to clone singleton', E_USER_ERROR);    }  }  class Apple extends Fruit{    protected $rndId;    public function __construct(){      $this->rndId = rand();    }    public function whatAmI(){      echo 'I am a Apple(' . $this->rndId . ')<br />';    }    public static function getInstance(){      //echo get_class();      return Fruit::getSingleton(get_class());    }  }  class GreenApple extends Apple{    public function whatAmI(){      echo 'I am a GreenApple(' . $this->rndId . ')<br />';    }    public static function getInstance(){      return Fruit::getSingleton(get_class());    }  }  $apple1 = Apple::getInstance();  //var_dump($apple1);  $apple2 = GreenApple::getInstance();  $apple1->whatAmI();// should echo 'I am a Apple(some number)  $apple2->whatAmI();// should echo 'I am a GreenApple(some number)  $apple1 = Apple::getInstance();  $apple2 = GreenApple::getInstance();  //保證單例模式  $apple1->whatAmI();// should echo 'I am a Apple(same number as above)  $apple2->whatAmI();// should echo 'I am a GreenApple(same number as above)  // $a = clone $apple1;// this should fail  // $b = clone $apple2;// this should fail

以上就是本文的全部內容,希望對大家學習php程序設計有所幫助。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 阳城县| 新安县| 舟山市| 景泰县| 白朗县| 和静县| 林芝县| 建阳市| 奇台县| 阳东县| 交口县| 响水县| 石渠县| 江城| 吴江市| 聊城市| 康乐县| 连山| 满洲里市| 通化县| 木里| 衡东县| 行唐县| 信阳市| 平湖市| 惠来县| 怀远县| 九龙县| 盐城市| 东海县| 滕州市| 名山县| 恩平市| 吴堡县| 姜堰市| 邳州市| 枣庄市| 道孚县| 疏附县| 桂东县| 遂平县|