概述:

     作为对象的创建模式,单例确保某一个内在系统中只存在一个实例,它不可以创建副本。     克隆函数(__clone )以及构造函数(__construct )必须声明为私用, 防止外部程序 创建一个新类 ,而失去单例模式的意义。

    PHP 语言是一种解释型的语言,在页面执行完成后,所有的相关资源都会被回收。PHP在语言级别上,不能像C#,JAVA编译型语言一样,没办法让某个对象长距内存。 然而在单一请求场景时,还是可以通过单例模式来共享对象,比如数据库连接对象。
class DbConnection
{private static $_instance;private static $token = 0;public static function  getInstance(){if (static::$_instance instanceof DbConnection) {return static::$_instance;}// 随机生产一个 token 标示当前内static::$token = rand(100, 1000);static::$_instance = new DbConnection();return static::$_instance;}// 克隆函数以及构造函数必须声明为私用,// 防止外部程序 创建一个新类 ,而失去单例模式的意义。private function  __clone(){}private function  __construct(){}public function  open(){echo "init times:" . static::$token . '<br/>';}}

  

单例与static 类的 比较:

   1、singleton 能够很好的保持对象的面相对象,比如静态工具类则可以使用 static。  2、单例可以实现自某接口,可以继承自某类。静态类也可以继承自某类,但是就没法使用父类里面的protect成员了。

转载于:https://www.cnblogs.com/rhythmK/p/5520271.html

php 设计模式 - 单例相关推荐

  1. java23种设计模式+单例_Java23种设计模式之单例模式

    一.单例模式简介 单例模式是Java设计模式中常见的一种模式.主要分为懒汉式单例.饿汉式单例.登记式单例: 单例模式的特点:  1.单例类只能有一个实例:  2.单例类必须自己创建自己的唯一的实例: ...

  2. Java中的程序设计模式--单例与多例

    单例设计模式: 就是指一个类只允许产生一个实例化对象. 分析: 要想只能产生一个实例化对象,就意味着使用者不能在外部使用 new 生成一个实例,即表示该类的构造函数是私有的(貌似C++当中没有私有的构 ...

  3. Objective-C设计模式——单例Singleton(对象创建)

    单例 和其它语言的单例产不多,可以说是最简单的一种设计模式了.但是有几个点需要注意下,单例就是一个类只有一个实例. 所以我们要想办法阻止该类产生别的实例,一般语言中都会将构造函数写为private.但 ...

  4. java设计模式 单例_java设计模式--单例模式

    单例设计模式 Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点. 核心知识点如下: (1) 将采用单例 ...

  5. 23种设计模式 单例 (整理摘抄优秀的博文) 记住

    https://github.com/yzmaodeng/java-keypointknowledge/commit/0894a14b03b724cd362f466e8f20514efbc164aa ...

  6. 面试官最喜欢考的设计模式---单例设计模式

    一.讲在前面的废话 笔者曾经多次面试都遇到了这个问题,请你说一下软件的设计模式,一般我们都会把23种模式例举几个出来,如果没有说错,你一定会列举单例设计模式,这样的话你就中了面试官的圈套了.接下来的一 ...

  7. Java设计模式——单例设计模式/权限修饰符的使用

    1. 单例模式含义 所谓的单例设计模式,就是采取一定的方法保证整个软件系统中,某个类只能存在一个对象实例. 单例设计模式 2. 单例设计模式的两种实现方法 饿汉式:不管是否需要该实例,我事先就把该实例 ...

  8. JAVA设计模式 - 单例与工厂模式

    前言 设计模式是在前人总结下 , 得出的经验, 设计模式的本质是面向对象设计原则的实际运用,是对类的封装性.继承性和多态性以及类的关联关系和组合关系的充分理解, 接着我们来看设计模式中的两种比较重要的 ...

  9. Java设计模式—单例设计模式(Singleton Pattern)完全解析

    转载请注明出处:http://blog.csdn.net/dmk877/article/details/50311791 相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用 ...

  10. Java设计模式-单例设计模式

    文章目录 前言 一.什么是设计模式? 二.单例模式介绍 1.单例模式的目的 2.单例模式的定义 单例模式的设计与实现要点: 3.单例模式的两种实现方式 (一)饿汉式创建 (二)懒汉式创建 4.单例模式 ...

最新文章

  1. EJB与JAVA BEAN_J2EE的异步消息机制
  2. spring中resource设计与实现
  3. mongodb msi安装包_跟我快速学数据存储:MongoDB非关系型数据库
  4. AllsitePasswd 全站密码访问插件 支持自定义主题模板
  5. 【Scala】使用Scala程序实现WordCount--词频统计(代码)
  6. [LibTorch] C++ 调用 PyTorch 导出的模型
  7. 软件测试面试-在工作中功能,接口,性能,自动化的占比是多少?
  8. CentOS新增硬盘系统不能自动进行识别。
  9. MFC windows程序设计(第三版)课后习题第一章
  10. COM组件注册DLL不成功
  11. MAG3110(可替代hmc5883l的磁力计) stm32f1xx调试心得附源代码(以后可能会陆续更新四轴相关的传感器,欢迎关注)
  12. Redis闲谈:你一定需要的知识图谱
  13. 使用matlab在图片上画框,并保存
  14. javaScript案例——二级联动、三级联动、省市区三级联动
  15. 全面认识思科系列交换机型号
  16. 大数据之Hadoop简介及环境搭建
  17. Linux基础命令----tail 查看文件尾部内容
  18. 解读|TARS开源项目发布Go语言版本 1
  19. Mac M1配置Apache Tomcat
  20. 假前端耍耍哒哒工作两年的感悟

热门文章

  1. 硬件知识:电脑组装机必备的知识梳理
  2. 办公技巧:Word批量小技巧,大大提高工作效率
  3. 不懂这11个隐藏技巧,别说你会用微信
  4. aes c android ios,AES加密在iOS和Android中产生不同的结果
  5. php 发邮件附件pdf,php – 使用TCPDF发送电子邮件附件 | 码农网
  6. java hibernate的使用_《Hibernate快速开始 – 4 – 使用JAVA持久层 API (JPA)教程》
  7. src与href属性的区别
  8. Android 第十八课 强大的滚动控件 RecyclerView
  9. 访问25%无法访问的人-如何设计可访问性
  10. 鲸鱼网络连接_登陆鲸鱼:在网络上读书,第1部分