您的位置:首页 > 编程语言 > PHP开发

php设计模式--单例模式

2015-11-28 18:54 573 查看
单例模式顾名思义:
这个类只能实例化一次.不能被克隆.一般被用来处理数据库操作等需要频繁使用,但是多次实例化又很浪费内存的类.

下面是一个带有注释的实例:

<?php
#单例模式
######################
class Single{
private static $instance; #定义私有静态属性,用来存放本类实例化后的对象.
private function __construct(){} #私有构造方法,防止new实例化操作.

public static function getInstance()
{
if(!(self::$instance instanceof self))
#instanceof又两个用途
# 1.判断前面那个是否是后面的对象

# 2.判断前面的是否实现类后面的接口

#这里如果$instance属性内部已经存储了对象,那么无需在实例化了

{
self::$instance=new self;
}
return self::$instance; #返回属性自身,当然现在已经是对象了.
}

public function info()
{
echo "this is a test"; #测试方法.
}

public function __clone()#如果外部进行克隆那么返回一个致命错误.
{
trigger_error('Clone is not allow!',E_USER_ERROR);
}
}
$e=Single::getInstance(); #调用静态方法,这个方法也是单例模式的精髓.
$e->info();
?>

本文出自 “吴泽辉的php博客” 博客,请务必保留此出处http://phpwzh.blog.51cto.com/6651035/1717766
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: