麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 建站經驗 > 正文

PHP單例模式詳細介紹

2024-04-25 20:38:02
字體:
來源:轉載
供稿:網友

單例模式的概念

單例模式是指整個應用中某個類只有一個對象實例的設計模式。具體來說,作為對象的創建方式,單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統全局的提供這個實例。它不會創建實例副本,而是會向單例類內部存儲的實例返回一個引用。

單例模式的特點

單例模式的主要特點是“三私一公”:

需要一個保存類的唯一實例的私有靜態成員變量

構造函數必須聲明為私有的,防止外部程序new一個對象從而失去單例的意義

克隆函數必須聲明為私有的,防止對象被克隆

必須提供一個訪問這個實例的公共靜態方法(通常命名為getInstance),從而返回唯一實例的一個引用。

使用單例模式的原因及場景

在PHP的大多數應用中都會存在大量的數據庫操作,如果不用單例模式,那每次都要new操作,但是每次new都會消耗大量的系統資源和內存資源,而且每次打開和關閉數據庫都是對數據庫的一種極大考驗和浪費。所以單例模式經常用在數據庫操作類中。

同樣,如果系統中需要有一個類來全局控制某些配置信息,那使用單例模式可以很方便的實現。

PHP單例模式實現

下面是一個PHP單例模式實現數據庫操作類的框架

<?php

class Db{

const DB_HOST='localhost';

const DB_NAME='';

const DB_USER='';

const DB_PWD='';

private $_db;

//保存實例的私有靜態變量

private static $_instance;

//構造函數和克隆函數都聲明為私有的

private function __construct(){

//$this->_db=mysql_connect();

}

private function __clone(){

//實現

}

//訪問實例的公共靜態方法

public static function getInstance(){

if(!(self::$_instance instanceof self)){

self::$_instance=new self();

}

//或者

if(self::$_instance===null){

self::$_instance=new Db();

}

return self::$_instance;

}

public function fetchAll(){

//實現

}

public function fetchRow(){

//實現

}

}

//類外部獲取實例的引用

$db=Db::getInstance();

?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产超碰人人爽人人做人人爱 | 国产又白又嫩又紧又爽18p | 国产羞羞视频在线观看免费应用 | 欧美黄色免费视频 | 亚欧美一区二区 | 泰剧19禁啪啪无遮挡 | 看免费5xxaaa毛片 | 老女人碰碰在线碰碰视频 | 亚洲精品a在线观看 | 一级毛片免费高清视频 | 欧美视频黄色 | 激情在线观看视频 | 欧美一页| 欧美一级黄色录相 | 猫咪av在线 | 日本一区二区久久久 | 91精品久久久久久久久久久 | 97超碰资源站 | 久久草在线视频国产 | 国产精品久久久久久久久久电影 | 欧美成人综合视频 | 久久欧美亚洲另类专区91大神 | 欧美一级美片在线观看免费 | 亚洲午夜在线视频 | av最新在线 | 日韩精品中文字幕在线播放 | 亚洲国产中文字幕 | 欧美人禽 | 港台三级在线观看 | 国产精品视频免费网站 | 久久老司机 | 91国内精品久久久久免费影院 | 欧美日韩在线看片 | 国产九色在线观看 | 黄色7777| 色综合激情 | 黄色淫片 | 国产伊人色 | 国产精品亚洲精品久久 | 亚洲成人福利网站 | 国产黄网 |