91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何實現單例模式singleton

發布時間:2021-06-25 14:02:55 來源:億速云 閱讀:188 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關php如何實現單例模式singleton的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

保證一個類僅有一個實例,并且提供一個訪問它的全局訪問點。
單例模式有三個特點:
1、一個類只有一個實例
2、它必須自行創建這個實例
3、必須自行向整個系統提供這個實例
一、單例模式結構圖

php如何實現單例模式singleton

二、單例模式中主要角色
Singleton 定義一個Instance操作,允許客戶訪問它的唯一實例。Instance是一個類方法。負責創建它的唯一的實例。
三、單例模式的優點
1、對唯一實例的受控訪問
2、縮小命名空間 單例模式是對全局變量的一種改進。它避免了那些存儲唯一實例的全局變量污染命名空間
3、允許對操作和表示的精華 單例類可以有子類。而且用這個擴展類的實例來配置一個應用是很容易的。你可以用你所需要的類的實例在運行時刻配置應用。
4、允許可變數目的實例(多例模式)
5、比類操作更靈活
四、單例模式適用場景
1、當類只能有一個實例而且客戶可以從一個眾所周知的訪問點訪問它時
2、當這個唯一實例應該是通過子類化可擴展的。并且用戶應該無需更改代碼就能使用一個擴展的實例時。
五、單例模式與其它模式】
工廠方法模式(factory method模式):單例模式使用工廠模式來提供自己的實例。
抽象工廠模式(abstract factory模式):抽象工廠模式可以使用單例模式,將具體工廠類設計成單例類。
建造者模式(Builder模式):建造模式可以將具體建造類設計成單例模式。
五、單例模式PHP示例

<?php
/**
 * 懶漢式單例類
 */
class Singleton {
 
 /**
  * 靜態成品變量 保存全局實例
  */
 private static $_instance = NULL;
 
 /**
  * 私有化默認構造方法,保證外界無法直接實例化
  */
 private function __construct() {
 }
 
 /**
  * 靜態工廠方法,返還此類的唯一實例
  */
 public static function getInstance() {
  if (is_null(self::$_instance)) {
   self::$_instance = new Singleton();
  }
 
  return self::$_instance;
 }
 
 /**
  * 防止用戶克隆實例
  */
 public function __clone(){
  die('Clone is not allowed.' . E_USER_ERROR);
 }
 
 /**
  * 測試用方法
  */
 public function test() {
  echo 'Singleton Test!';
 }
 
}
 
/**
 * 客戶端
 */
class Client {
 
  /**
  * Main program.
  */
 public static function main() {
  $instance = Singleton::getInstance();
  $instance->test();
 }
}
 
Client::main();
?>

感謝各位的閱讀!關于“php如何實現單例模式singleton”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂州市| 宁都县| 光山县| 张家川| 安顺市| 玉门市| 莱西市| 安康市| 五指山市| 工布江达县| 松滋市| 北辰区| 德钦县| 土默特右旗| 志丹县| 洛浦县| 平湖市| 永顺县| 绥江县| 凤山市| 永济市| 鄂伦春自治旗| 玛曲县| 岗巴县| 麟游县| 贞丰县| 砚山县| 靖西县| 广州市| 普陀区| 苗栗市| 盐边县| 哈尔滨市| 苏尼特左旗| 涞源县| 甘泉县| 仪征市| 德江县| 林甸县| 城固县| 邯郸县|