设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
php实现设计模式中的单例模式详解
返回列表
查看:
112
|
回复:
0
php实现设计模式中的单例模式详解
[复制链接]
网络通达
当前离线
积分
7881
2647
主题
2647
帖子
7881
积分
论坛元老
论坛元老, 积分 7881, 距离下一级还需 9992118 积分
论坛元老, 积分 7881, 距离下一级还需 9992118 积分
积分
7881
发消息
电梯直达
楼主
发表于 2018-2-14 05:54:07
|
只看该作者
|
倒序浏览
|
阅读模式
【概要】
保证一个类仅有一个实例,并且提供一个访问它的全局访问点【GOF95】
【特点】
1、一个类只有一个实例
2、它必须自行创建这个实例
3、必须自行向整个系统提供这个实例
【结构图】
【主要角色】
Singleton定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类方法。负责创建它的唯一的实例。
【优缺点】
1、对唯一实例的受控访问
2、缩小命名空间 单例模式是对全局变量的一种改进。它避免了那些存储唯一实例的全局变量污染命名空间
3、允许对操作和表示的精华 单例类可以有子类。而且用这个扩展类的实例来配置一个应用是很容易的。你可以用你所需要的类的实例在运行时刻配置应用。
4、允许可变数目的实例(多例模式)
5、比类操作更灵活
【适用性】
1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
2、当这个唯一实例应该是通过子类化可扩展的。并且用户应该无需更改代码就能使用一个扩展的实例时。
【单例模式php实例】
[U]复制代码[/U] 代码如下:
* @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 设计模式之 单例模式
php设计模式 Singleton(单例模式)
PHP最常用的2种设计模式工厂模式和单例模式介绍
基于php设计模式中单例模式的应用分析
php设计模式之单例模式使用示例
php单态设计模式(单例模式)实例
php设计模式之单例模式实例分析
学习php设计模式 php实现单例模式(singleton)
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端