php实现设计模式中的单例模式详解
2015-01-24信息快讯网
这篇文章主要介绍了php实现设计模式中的单例模式详解,本文详细讲解了php中的单例模式,并给出了代码实例,需要的朋友可以参考下
【概要】
保证一个类仅有一个实例,并且提供一个访问它的全局访问点【GOF95】
【特点】
1、一个类只有一个实例
2、它必须自行创建这个实例
3、必须自行向整个系统提供这个实例
【结构图】
【主要角色】
Singleton定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类方法。负责创建它的唯一的实例。
【优缺点】
1、对唯一实例的受控访问
2、缩小命名空间 单例模式是对全局变量的一种改进。它避免了那些存储唯一实例的全局变量污染命名空间
3、允许对操作和表示的精华 单例类可以有子类。而且用这个扩展类的实例来配置一个应用是很容易的。你可以用你所需要的类的实例在运行时刻配置应用。
4、允许可变数目的实例(多例模式)
5、比类操作更灵活
【适用性】
1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
2、当这个唯一实例应该是通过子类化可扩展的。并且用户应该无需更改代码就能使用一个扩展的实例时。
【单例模式php实例】
<?php /** * 单例模式 * ------------- * @author zhaoxuejie <[email protected]> * @package design pattern * @version v1.0 2011-12-14 */ class Singleton { //私有静态成员变量,保存全局实例 private static $instance = NULL; //私有构造方法,保证外界无法直接实例化 private function __construct(){} //静态方法,返回此类唯一实例 public static function getInstance(){ if(!isset(self::$instance)){ $c = __CLASS__; self::$instance = new $c; } return self::$instance; } //测试用方法 public function info(){ return 'ok'; } //防止克隆 public function __clone(){ trigger_error('Clone is not allowed.', E_USER_ERROR); } }$s = Singleton::getInstance(); echo $s->info(); ?>
php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
PHP PDO fetch 模式各种参数的输出结果一览
浅析php适配器模式(Adapter)
浅析php原型模式
浅析php创建者模式
浅析php工厂模式
浅析php单例模式
php单态设计模式(单例模式)实例
php实现singleton()单例模式实例
PHP依赖倒置(Dependency Injection)代码实例
PHP实现设计模式中的抽象工厂模式详解
php中字符集转换iconv函数使用总结
PHP生成网站桌面快捷方式代码分享
PHP中执行cmd命令的方法
PHP @ at 记号的作用示例介绍
PHP fastcgi模式上传大文件(大约有300多K)报错
php设计模式之简单工厂模式详解
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
ThinkPHP调试模式与日志记录概述
PHP中数据库单例模式的实现代码分享
PHP实现单例模式最安全的做法
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
PHP防止post重复提交数据的简单例子
php计算程序运行时间的简单例子分享