使用PHP单例模式

为什么要使用PHP单例模式?

1、PHP的应用主要在于数据库应用, 所以一个应用中会存在大量的数据库操作, 使用单例模式, 则可以避免大量的new 操作消耗的资源。
2、如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现. 这个可以参看ZF的FrontController部分。

3、在一次页面请求中, 便于进行调试, 因为所有的代码(例如数据库操作类db)都集中在一个类中, 我们可以在类中设置钩子, 输出日志,从而避免到处var_dump, echo。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
header("Content-Type: text/html; charset=UTF-8");
class Singleton{
    //保存类的实例
    private static $_instance;
               
    private function __construct(){
        echo "This is a Constructed method;";       
    }
               
    //防止对象被克隆
    public function __clone(){
        trigger_error('Clone is not allow !',E_USER_ERROR); 
    }
               
    public static function getInstance(){
        if(!(self::$_instance instanceof self)){
            self::$_instance=new self;
        }
        return self::$_instance;
    }
    public function test(){
        echo '调用方法成功';  
    }
}
           
//正确的调用方法
$singleton = Singleton::getInstance();
$singleton->test();
           
$singleton_clone clone $singleton;
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章