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