如何用代码简单说明PHP单例模式
Admin 2022-09-17 群英技术资讯 1049 次浏览
今天小编跟大家讲解下有关“如何用代码简单说明PHP单例模式”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。使用注意事项:
1.使用时不能用反射模式创建单例,否则会实例化一个新的对象
2.使用懒单例模式时注意线程安全问题
3.饿单例模式和懒单例模式构造方法都是私有的,因而是不能被继承的,有些单例模式可以被继承(如登记式模式)
<?php
/**
* Created by PhpStorm.
* auther: sgj
* Date: 2019/9/5
* Time: 20:58
*/
/*
1.单例模式只能通过自身进行实例化
2.拥有一个保存对象实例的静态成员变量
3.拥有一个访问这个实例的公共静态方法(常用getInstance()方法进行实例化单例类 )
4.通过instanceof操作符可以检测到类是否已经实例化了
*/
class single
{
/**
* 私有构造函数
* single constructor.
*/
private function __construct()
{
}
/**
* 私有的构造函数防止克隆
*/
private function __clone()
{
// TODO: Implement __clone() method.
}
/*存储实例的静态方法*/
private static $interion;
/**
* 通过这个来获取实例
* @return single
*/
public function getInstance(){
if (empty($interion)){
self::$interion=new single();
}
return self::$interion;
}
}
1.单例模式只能通过自身进行实例化
2.拥有一个保存对象实例的静态成员变量
3.拥有一个访问这个实例的公共静态方法(常用getInstance()方法进行实例化单例类 )
4.通过instanceof操作符可以检测到类是否已经实例化了
单例模式的优点:
一个php进程只会实例化出一个单例 ,减少了内存占用减少资源占用。比如说你的调整了php的进程数,随着php进程数的增加需要注意到mysql连接数的数量。因为php mysql采用了单例模式,你的PHP进程数就是mysql的连接数。(此时也需要注意你的mysql连接数必须大于
你php的进程数,否则就等待mysql 释放连接 导致等待从而导致多米诺似的系统崩溃)
单例模式的缺点:
没有抽象层难以扩展 不适合变化性较强的实例单例类的职责过重,在一定程度上违背了“单一职责原则”。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了PHP实现通过文本文件统计页面访问量功能,涉及php文件读写、数值计算及图形操作相关实现技巧,需要的朋友可以参考下
在做开发时,我们可能会遇到需要上传多张图片的需求,那么我具体要如何来实现呢?下面小编就给大家分享一下如何使用TP5框架实现上传多张图片的方法,感兴趣的朋友可以看一看。
命名空间概述什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中...
重构代码是构建和维护软件的重要方面,重构涵盖了一系列不同的技术,包括移动,提取,复制,删除和重命名。PhpStorm的重构功能(包含在核心软件包中)支持所有这些功能。
在之前的文章中给大家带来了《让人心动简单易记的PHP变量知识小结(详细)》,本篇继续给大家带来了PHP知识的讲解,介绍一下PHP中常见的if else语法和NULL数据类型,都是基础的知识整理,希望能帮助到大家!
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008