PHP设计模式-单例模式
来源:互联网 发布:算法是一个什么的集合 编辑:程序博客网 时间:2024/05/18 00:32
1、前言
单例模式有3个特点:
- 私有静态属性,又来储存生成的唯一对象
- 私有构造函数
- 公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例
- 私有克隆函数,防止克隆——clone(这个不是特点,只是出于安全)
那么为什么使用单例模式:
PHP一个主要应用场合就是应用程序与数据库打交道的场景,避免每一次 NEW 操作消耗系统和内存的资源。
2、代码实现
class Singleton { /** * 静态成品变量 保存全局实例 */ private static $_instance = NULL; /** * 私有化默认构造方法,保证外界无法直接实例化 */ private function __construct() { } /** * 静态工厂方法,返还此类的唯一实例 */ public static function getInstance() { if (!self::$_instance instanceof Singleton) { self::$_instance = new Singleton(); } return self::$_instance; } /** * 防止用户克隆实例 */ private function __clone(){ die('Clone is not allowed.' . E_USER_ERROR); }}
回归主题:如何确保只有一个呢?=》这个类只加载一次=》静态属性或方法
本例中使用self::$_instance instanceof Singleton 来判断实例化的 $_instance 是否属于 Singleton,确保只创建一个实例对象。
3、总结
主要优点:
- 提供了对唯一实例的受控访问。
- 由于内存中只存在一个实例化对象,因此可以节约内存资源。(对应需要频繁实例化的对象可以避免资源的浪费)
- 由于单利模式中没有抽象层,扩展难
- 单例类的职责过重,毕竟管太多(违背“单一职责原则”)。
- 滥用单例将带来一些负面问题(高并发的连接池溢出,实例化对象长期不被使用)。
阅读全文
0 0
- PHP 单例设计模式
- php单例设计模式
- 【PHP设计模式】单例模式
- php设计模式之单例模式
- 设计模式php实例:单例模式
- PHP设计模式之:单例模式
- PHP设计模式之单例模式
- PHP设计模式-单例模式
- PHP 设计模式之单例模式
- PHP设计模式之:单例模式
- PHP设计模式-单例模式
- php设计模式之单例模式
- PHP设计模式之:单例模式
- php设计模式-单例模式
- PHP设计模式之:单例模式
- php设计模式笔记:单例模式
- php设计模式-单例模式
- PHP设计模式之:单例模式
- Java基础——初识过滤器
- HA 高可用集群原理
- html页面公共样式
- vimの 多行修改单词
- bootstrap-treeview 实现全选父节点下所有子节点及反选
- PHP设计模式-单例模式
- 思维导图速成记忆法,考试复习必备
- android自定义三个按钮的dialog对话框
- androdi简单的密码输入对话框(Dialog)
- jvm类加载机制
- 进程间通讯方式
- Linux fstab修改不当导致开机fsck失败而主机无法重启
- Unity滚轮控制UI和摄像机缩放冲突问题
- 二叉树的遍历