当前位置:博客首页>>片言碎语 >> 阅读正文

【设计模式】php设计模式之单例模式学习

作者: 郑晓 分类: 片言碎语 发布于: 2014-06-17 18:17 浏览:4,463 评论(2)


什么是单例模式,单例模式顾名思义,就是只有一个实例。作为对象的一种创建模式, 单例模式确保了某一个类有且只有一个实例,而且通过自身完成实例化并向整个系统提供这个实例。

一个单例模式的类,要具备以下几点要求:
1、构造函数须要标记为private(访问控制:声明为私有方法,防止外部代码直接使用new来创建对象),单例类不能在其他类中实例化,只能被其自身实例化。
2、拥有一个保存类的实例的私有静态成员变量。
3、拥有一个访问这个实例的公共的静态方法(一般常用getInstance()方法进行实例化类,或返回已经实例化的对象,通过instanceof操作符可以检测到类是否已经被实例化)
4、需要创建__clone()方法防止对象被复制(克隆),当代码中使用clone操作符进行对象克隆时会调用这个方法。

为什么使用PHP单例模式?

1. php的单例主要应用于数据库应用中, 一般在一个应用中会存在大量的数据库操作, 在使用面向对象的方式开发时, 如果使用单例模式, 则可以避免大量的new 操作消耗的资源,还可以减少数据库连接这样就不容易出现too many connections情况。

2. 如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现。

3. 在一次页面请求中, 便于进行调试, 因为所有的代码(例如数据库操作类db)都集中在一个类中, 我们可以在类中设置钩子, 输出日志,从而避免到处的打印。。。

test();

//复制对象将导致一个E_USER_ERROR错误.
$test4 = clone $test;
?>

       

本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。

本文永久链接: https://www.zh30.com/she-ji-mo-shi-php-she-ji-mo-shi-zhi-dan-li.html

【设计模式】php设计模式之单例模式学习:目前有2 条留言

用户评论头像 刘春晓的博客发表于 2014年06月22日 17:34[回复]

你好 朋友 有没有兴趣做友情链接

用户评论头像 女装屋发表于 2014年06月18日 00:52[回复]

😎 😎 😆 学习了

发表评论

change vcode