程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP設計模式 - 單例

PHP設計模式 - 單例

編輯:關於PHP編程

單例模式
通過提供自身共享實例的訪問,單例設計模式用於限制特定對象只能被創建一次。
 
使用場景
例如數據庫實例,一般都會走單例模式。
單例模式可以減少類的實例化
代碼:來源InitPHP框架,先檢測類有沒被實例化,實例化了就使用已經存放在靜態變量中的對象實例,沒有則實例化並將對象保存起來。
[php]
/**
 * 框架核心加載-框架的所有類都需要通過該函數出去
 * 1. 單例模式
 * 2. 可以加載-Controller,Service,View,Dao,Util,Library中的類文件
 * 3. 框架加載核心函數
 * 使用方法:$this->load($class_name, $type)
 * @param string $class_name 類名稱
 * @param string $type 類別
 */   www.2cto.com
public function load($class_name, $type) { 
    $class_path = $this->get_class_path($class_name, $type); 
    $class_name = $this->get_class_name($class_name); 
    if (!file_exists($class_path)) InitPHP::initError('file '. $class_name . '.php is not exist!'); 
    if (!isset(self::$instance['initphp'][$class_name])) { 
        require_once($class_path); 
        if (!class_exists($class_name)) InitPHP::initError('class' . $class_name . ' is not exist!'); 
        $init_class = new $class_name; 
        self::$instance['initphp'][$class_name] = $init_class; 
    } 
    return self::$instance['initphp'][$class_name]; 

作者:initphp

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved