单例模式
今天在网上看了一下PHP的单例模式,和iOS的作用基本一样,减少了初始化类的次数,避免每次初始化类内存的消耗,下面我们来试一下如何创建一个单例:
private $instance; //保存类实例的静态成员变量,必须是private
private __contruct () {
//注意,单例类的构造函数也是private类型的,因为要避免外界的实例化
}
public getInstance ()
{
if(!(self::$_instance instanceof self)) {
self::$_instance = new self;
}
return self::$_instance;
}
public test ()
{
echo "这是一个单例的测试";
}
外部调用:
$dele = dele::getInstance();
$dele->test();
那么这样,一个单例模式的实例就完成了;
说一下优缺点吧:
优点:避免了重复初始化类,节省了初始化时内存资源和系统资源的消耗
缺点:在PHP中,不管全局变量还是静态成员,它们的载体都是当前页面,每次页面的刷新都会重新生成对象(也就是每次都会初始化类);当页面执行完成后对象也会被清空,这样看来的话,PHP中的单例模式是不是没有任何卵用呢?欢迎高手纠正错误