【概要】
保证一个类仅有一个实例,并且提供一个访问它的全局访问点【gof95】
【特点】
1、一个类只有一个实0的相反数是什么例
2、它必须自行创建这个实例
3、必须自行向整个系统提供这个实例
【结构图】
【主要角色】
singleton定义一个instance操作,允许客户访问它的唯一实例。instance是一个类方法。负责创建它的唯一的实例。
【优缺点】
1、对唯一实例的受控访问
2、缩小命名空间 单例模式是对全局变量的一种改进。它避免了那些存储唯一实例的全局变量污染命名空间
3、允许对操作和表示的精华 单例类可以有子类。而且用这个扩展类的实例来配置一个应用是很容易的。你可以用你所需要的类的实例在运行时刻配置应用。
4、允许可变数目的实例(多例模式)
5、比类操作更灵活
【适用性】
1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
2、当这个唯一实例应该是通过子类化可扩展的吉林省有多少个市。并且用户应该无需更改代码就能使用一个扩展的实例时。
【单例模式php实例】
复制代码 代码如下:
<?php
/**
* 单例模式
* ————-
* @author zhaoxuejie <zxj198468@gmail.com>
* @package design pattern
* @version v1.0 2011-12-14
托福考试报名时间*/
class singleton {
//私有静态成员变量,保存全局实例
private static $instance = null;
//私有构造方法,保证外界无法直接实例化
private function __construct(){}
//静态方法,返回此类唯一实例
pub供应商安全管理制度lic static function getinstance(){
if(!ist(lf::$instance)){
$c = __class__;
lf::$instance = new $c;
}
return lf::$instance;
}
//测试用方法
public function info(){
return ‘ok’;
}
//防止克隆
public function __clone(){
trigg英语导游词er_error(‘clone is not allowed.’, e_ur_error);
}
}
$s = singleton::getinstance();
echo $s->info();
?>
本文发布于:2023-04-06 21:20:44,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/2216120f6684114381eb15b4bc4ec3ac.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:php实现设计模式中的单例模式详解.doc
本文 PDF 下载地址:php实现设计模式中的单例模式详解.pdf
留言与评论(共有 0 条评论) |