php 简单的 单例模式
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 释放连接 导致等待从而导致多米诺似的系统崩溃)
单例模式的缺点:
没有抽象层难以扩展 不适合变化性较强的实例单例类的职责过重,在一定程度上违背了“单一职责原则”。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧