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

首頁 > 開發 > PHP > 正文

PHP面向對象―單例模式

2024-05-04 21:53:04
字體:
來源:轉載
供稿:網友

單例模式是設計模式中比較簡單的模式,會在一些特殊的場影得以運用,比如:應用中只需要一個對象實例存在,這時使用單例模式能夠節省內存。單例模式體現了面向對象封裝特性中的“單一職責”和“對象自治”原則。

構建一個PHP的單例類需要以下要求:

構造函數為private,防止外部代碼new此對象。

構造函數為final可以禁止子類覆蓋。

擁有一個靜態成員變量來保存自身實例。

擁有一個返回自身實例,公共且靜態的方法,此方法負責只產生一個實例,如果已經有一個實例則直接返回。

為了防止對象被克隆,還要重寫__clone()方法

  1. <?php 
  2. class Database { 
  3.     private $_db
  4.     static $_instance
  5.     final private function __construct($dbname,$user='root',$password='',$port='3306') { 
  6.         $conStr = "dbname=".$dbname." user=".$user." password=".$password." port=".$port
  7.         $this->_db = pg_connect($conStr); 
  8.     } 
  9.     private __clone() {}; 
  10.     public static function getInstance($dbname,$user='root',$password='',$port='3306') { 
  11.         if( ! (self::$_instance instanceof self) ) { 
  12.             self::$_instance = new self($dbname,$user='root',$password='',$port='3306'); 
  13.         } 
  14.         return self::$_instance
  15.     } 
  16.     public function query($sql) { 
  17.         return pg_query($this->_db, $sql); 
  18.     } 
  19. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固镇县| 靖州| 西丰县| 洪湖市| 涿州市| 庄浪县| 东阿县| 海伦市| 裕民县| 准格尔旗| 长泰县| 观塘区| 桑日县| 阿拉尔市| 那坡县| 吉林省| 大埔县| 沾化县| 彰化市| 安福县| 务川| 无极县| 永修县| 理塘县| 石景山区| 盘山县| 原平市| 许昌县| 庆城县| 大冶市| 桂阳县| 盐池县| 灵山县| 静安区| 乌拉特中旗| 平舆县| 闽侯县| 武义县| 石首市| 邳州市| 油尖旺区|