background image

PHP

程序员 php 设计模式总结

本文主要介绍 php 的设计模式,主要介绍以下三中模式,主要包括单例模式,工厂模式,观
察者模式
1、单例模式
所谓单例模式,也就是在任何时候,应用程序中只会有这个类的一个实例存在。常见的,
我们用到单例模式只让一个对象去访问数据库,从而防止打开多个数据库连接。要实现一
个单例类应包括以下几点:
和普通类不同,单例类不能被直接实例化,只能是由自身实例化。因此,要获得这样的限
制效果,构造函数必须标记为

private

 

要让单例类不被直接实例化而能起到作用,就必须为其提供这样的一个实例。因此,就必
须要让单例类拥有一个能保存类的实例的私有静态成员变量和对应的一个能访问到实例

 

的公共静态方法。
在 PHP 中,为防止对单例类对象的克隆来打破单例类的上述实现形式,通常还为基提供
一个空的私有__clone()

 

方法。

下面是一个基本的单例模式:
代码如下:
 

class

 SingetonBasic {

private

 

static

 

$instance

;

// other vars..
private

 

function

 __construct() {

// do construct..

}

private

 

function

 __clone() {}

public

 

static

 

function

 getInstance() {

if

 (!(self::

$instance

 

instanceof

 self)) {

self::

$instance

 = 

new

 self();

}

return

 self::

$instance

;

}

// other functions..

}

$a

 = SingetonBasic::getInstance();

$b

 = SingetonBasic::getInstance();

var_dump(

$a

 === 

$b

);

2、工厂模式