网站制作学习网PHP→正文:php单例模式
字体:

php单例模式

PHP 2010/8/9 17:58:33  点击:不统计


php有两种常用的模式,一种是单例模式,一种是工厂模式,单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点.说的通俗一点就是实例化出来的对象是唯一的.
单例模式至少有以下三种公共元素
1.必须拥有一个构造函数,并且标记为private
2.拥有一个保存类的实例的静态变量成员
3.拥有一个访问该实例类的公共静态方法
特性:
1.单例类不能在其他类中实例化,只能被自身实例化.
2.单例类不会创建副本,也就是说在单例类中有一个私有的__clone();方法使其不能创建副本.
3.返回单例类的方法必须是静态的,如果没有被实例化则进行实例化<网站制作学习网Foasp.cn>
4.如果单例类不需要使用构造函数__contruct方法,则这个类不适合用单例模式,可以使用纯静态类.
实例:
<?
class only_forasp{
static $fact;//定义一个静态变量用来保存实例(对象)
private function __construct(){//定义构造函数
 echo "this is wangzhanzhizuo xuexi wang";
}
//private __clone(){};//定义了私有的克隆变量,使对象不能被复制或者建立副本
private function __clone(){}//采用重载的方式进行克隆的私有化,不知道为什么上面的私有化错误
public static function begin()
    {//定义静态的私有开始函数
   if(!(self::$fact instanceof self)){
   self::$fact = new self();
   }
   return self::$fact;
 }
public function wirteurl(){
echo  "this is www.forasp.cn";
}
}
$a = only_forasp::begin();
$a->wirteurl();
?>
这样就创建了单一对象(实例)的类,这就是php的单例模式
转www.载for网站制作学习asp必.cn究

·上一篇:php Safe_mode影响参数 >>    ·下一篇:php抽象类和接口区别 >>
推荐文章
最新文章