单例销毁_【PHP设计模式】单例模式
生活随笔
收集整理的這篇文章主要介紹了
单例销毁_【PHP设计模式】单例模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
設計模式是我們開發過程中的重中之重,所以今天小編就來學習設計模式中的單例模式。
單例模式
<?phpclass Singleton { /*** 定義一個靜態變量保存已經實例化的對象* * @var self|null*/private static $_instance = null;/*** 構造函數私有,防止類可以通過 new 實例化* * @access private* @return void*/private function __construct () { }/*** 私有化復制克隆方法,防止類別復制和克隆* * @access private* @return void*/private function __clone () { }/*** 定義獲取對象實例的入口,返回該實例* * @access public* @return self*/public static function getInstance () { // 判斷是否已經存在實例化對象if (self::$_instance === null) { // 不存在,則進行實例化self::$_instance = new self();}return self::$_instance;}/*** 此接口用來測試單例模式 - 改變 string 的值* * @access public * @param string $string 值* @return void*/public function setString ($string) { $this->string = $string;}/*** 此接口用來測試單例模式 - 輸出 string 的值* * @access public * @return void*/public function dumpString () { echo($this->string);} }// 測試,第一次實例化 $test1 = Singleton::getInstance(); echo('這是第一次實例化<br><br>'); $test1->setString('哈咯,小羅'); $test1->dumpString();echo('<br><br><br>');// 第二次實例化 echo('這是第二次實例化<br><br>'); $test2 = Singleton::getInstance(); $test2->dumpString();echo('<br><br><br>');// test2 修改 string 的數據 $test2->setString('哈咯,小羅,我是 test2 修改的數據<br><br>');// 重新執行 test1 的打印方法,看看是否改變了數據 echo('重新執行 test1 的打印方法<br><br>');$test1->dumpString();接下來我們查看一下執行結果:
由此我們可以看出,雖然我們實例化了兩次,但兩次得到的都是同一實例,如果其中一個修改了實例的成員,其它的都會被修改。
結語
總結
以上是生活随笔為你收集整理的单例销毁_【PHP设计模式】单例模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玉字笔顺笔画顺序怎么写(玉字笔顺)
- 下一篇: 如果连续增加某种生产要素在总产量达到最大