首页 > 代码库 > PHP设计模式浅谈

PHP设计模式浅谈

1.单例模式

顾名思义,单例模式定义了一个对象只能有一个实例,相当于把类的控制权给到了一个单点上。

要求:

a.private的构造函数,使类无法被随意new实例化;

private function __construct{
    ......
}

 

b.有一个静态变量,用来保存类的实例;

static public $instance;

 

c.有一个公共的静态方法,来访问这个实例,通常命名为getInstance;

static public function getInstance(){
    if(empty(self::$instance)) self::$instance = new self();
    return self::$instance;
}

 

d.有一个private的__clone方法,防止对象被克隆;

private function __clone(){
    ......
}

 

所以,PHP实现单例模式的代码如下:

class ClassName{

    static public $instance;

    private function __construct(){
        ......
    }

    static public function getInstance(){
        if(empty(self::$instance)) self::$instance = new self();
        return self::$instance;
    }

    private function __clone(){
        ......
    }
}

 

未完待续......

 

PHP设计模式浅谈