php设计模式之单例、多例设计模式的应用分析
2015-01-24信息快讯网
本篇文章是对php设计模式中的单例与多例设计模式的应用进行了详细的分析介绍,需要的朋友参考下
单例(Singleton)模式和不常见的多例(Multiton)模式控制着应用程序中类的数量。如模式名称,单例只能实例化一次,只有一个对象,多例模式可以多次实例化。基于Singleton的特性,我们经常用Singleton配置应用程序并定义应用程序中可能随时访问的变量。但有时并不推荐使用Singleton,因为它生成了一个全局状态且
该单一根对象没有封装任何系统功能。多数情况下,会使单元测试和调试变得困难。读者根据情况自行决定。
代码示例:
<?php class SingletonExample{ private function __construct(){}//防止直接实例化 public static function getInstance(){ //不与任何对象有关联 static $instance=null; //调用此函数的所有代码共享该变量,不必要让其是类的静态变量 if($instance==null){ $instance=new SingletonExample(); } return $instance; } } $obj1=SingletonExample::getInstance(); $obj2=SingletonExample::getInstance(); var_dump($obj1===$obj2);// true 是同一个实例 ?>
Multiton与singleton相似,不同的是后者需要getInstance()函数传递关键值。
对于给定的关键值只会存在唯一的对象实例,如果有多个节点,每个节点拥有唯一的表识符,且各个节点在某单次执行(如cms里的节点)可能出现多次,那么就可以用Multiton模式实现这些节点啊,Multiton节省内存,并确保同一个对象的多个实例不发生冲突.
示例:
<?php class MultitonExample{ private function __construct(){}//防止直接实例化 public static function getInstance($key){ static $instance=array(); if(!array_key_exists($key,$instance)){ $instance[$key]=new SingletonExample(); } return $instance($key); } }; ?>
PHP引用(&)各种使用方法实例详解
PHP使用imagick读取PDF生成png缩略图的两种方法
PHP fopen()和 file_get_contents()应用与差异介绍
php实现保存submit内容之后禁止刷新
php过滤所有恶意字符(批量过滤post,get敏感数据)
php设计模式之命令模式使用示例
php反射应用示例
php利用单例模式实现日志处理类库
header导出Excel应用示例
php设计模式之单例模式使用示例
浅析ThinkPHP中的pathinfo模式和URL重写
关于JSON以及JSON在PHP中的应用技巧
Ajax+PHP快速上手及简单应用说明
PHP以指定字段为索引返回数据库所取的数据数组
php获取$_POST同名参数数组的实现介绍
深入解析php中的foreach问题
浅析关于PHP位运算的简单权限设计
PHP删除HTMl标签的三种解决方法
PHP删除HTMl标签的实现代码
手把手教你打印出PDF(关于fpdf的简单应用)
PHP多例模式介绍
解析argc argv在php中的应用
解析php dirname()与__FILE__常量的应用
解析php中的fopen()函数用打开文件模式说明
解析PHP中的正则表达式以及模式匹配
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
解析PHP工厂模式的好处
解析php中反射的应用
PHP设计模式之调解者模式的深入解析
鸡肋的PHP单例模式应用详解
基于php设计模式中单例模式的应用分析
php单例模式实现(对象只被创建一次)