请学习此单例模式之前,请选阅读另外的设计模式

php设计模式 — 简单工厂模式(静态工厂方法模式)

php设计模式 — 工厂方法模式(多态性工厂模式) (虚拟构造子模式)

php设计模式 — 抽象工厂模式

作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类

单例模式(singleton)有三个特点
1、一个类只能有一个实例
2、它必须自行创建这个实例
3、它必须自行向整个系统提供这个实例

图例:

代码示例:

单例模式在JAVA中会被分为懒汉式单例模式 | 饿汉式单例模式

不过,饿汉式单例模式在PHP中不能使用,下面我会把写法代码列出来,在运行时会提示错误。这里只是提供一种用法概念。

饿汉式单例模式:

 1 //这是饿汉单例模式
 2 //不过在php里,不允许这么实用。所以我们主要是说PHP的懒汉式单例模式
 3 class test {
 4     private static $_instance = new self();
 5
 6     public static function getInstance(){
 7         return self::$_instance;
 8     }
 9
10     private function __construct(){
11         //检查实例化
12         echo "instance\n";
13     }
14
15 }
16 $a = test::getInstance();
17 var_dump($a);

懒汉式单例模式:

 1 //懒汉式单例模式
 2
 3 class test {
 4     private static $_instance;
 5
 6     public static function getInstance(){
 7         if(!self::$_instance){
 8             self::$_instance = new self();
 9         }
10         return self::$_instance;
11     }
12
13     private function __construct(){
14         //检查实例化
15         echo "instance\n";
16     }
17
18 }
19
20 $a = test::getInstance();
21 var_dump($a);

转载于:https://www.cnblogs.com/aqsmoke/p/3968189.html

php设计模式 — 单例模式(singleton)相关推荐

  1. Android设计模式——单例模式(Singleton)

    二十三种设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元 ...

  2. 常见设计模式—单例模式(Singleton)

    前言 好久没写东西了,但是想着无论什么事还是要坚持自己初心要坚持的东西.写东西不能断! 对于常用的23种设计模式,这里笔者会根据自己学习和出现频率.重要程度进行学习记录吧.并且每种设计模式可能会根据暂 ...

  3. C++设计模式--单例模式(Singleton)及单例通用模板

    概述 C++中的单例模式应该是设计模式中最简单的了,在编码中常见到.那么,简单的总结下 C++中的单例模式写法,以及根据单例模式扩展后的一些写法,最后还有单例的通用模板,可用于快捷创建一个单例类. 单 ...

  4. 设计模式 -- 单例模式(Singleton)

    写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- 主要内容包括: 初始单例 ...

  5. 设计模式——单例模式(Singleton)

    保证一个类仅有一个实例,并提供一个访问它的全局访问点.--DP UML类图 模式说明 个人认为单例模式是所有设计模式中最为简单的一个模式,因为实现这个模式仅需一个类,而不像其他模式需要若干个类.这个模 ...

  6. Python 设计模式: 单例模式(singleton pattern)

    2019独角兽企业重金招聘Python工程师标准>>> 如果想在整个程序的运行过程中,某个类只有一个实例的话,可以通过单例模式来实现. 在 Python 中实现单例模式有很多种方式, ...

  7. 解读设计模式----单例模式(Singleton Pattern)

    单例模式可以保证一个类有且只有一个实例,并提供一个访问它的全局访问点.在程序设计中,有很多情况需要确保一个类只能有一个实例.从这句话可以看出,Singleton模式的核心:如何控制用户使用new对一个 ...

  8. JAVA设计模式-单例模式(Singleton)线程安全与效率

    一,前言 单例模式详细大家都已经非常熟悉了,在文章单例模式的八种写法比较中,对单例模式的概念以及使用场景都做了很不错的说明.请在阅读本文之前,阅读一下这篇文章,因为本文就是按照这篇文章中的八种单例模式 ...

  9. 设计模式---单例模式Singleton

    /*** 饿汉式* 类加载到内容后,就实例化一个实例,* JVM保证线程安全: JVM保证每一个Class只会load到内存一次,static关键字是在Class load到内存之后马上就行初始化,也 ...

  10. 趣谈设计模式 | 单例模式(Singleton) :独一无二的对象

    文章目录 单例模式 饿汉模式 懒汉模式 懒汉和饿汉的区别 单例模式 一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全 局访问点,该实例被所有程序模块共享. ...

最新文章

  1. 基于大数据开发套件定时调度带资源文件的MapReduce作业
  2. Trie 树——搜索关键词提示 1
  3. Linux正则和grep命令
  4. java jquery基础_day20:JQuery基础(超系统的JavaWEB全套教程)
  5. 算法六之直接插入排序
  6. Linux系统编程21:基础IO之全缓冲和行缓冲的区别及深刻理解缓冲区及其作用
  7. UITableView 系列二 :资料的设定方式 (Navigation Controller切换视图) (实例)
  8. kafka0.9 java commit_Kafka 0.9 新消费者API
  9. Apache与Nginx服务器对比
  10. 原创 | 职场风云 (五)成长的烦恼
  11. java webservice调用sap_java调用sap webservice
  12. 模拟电路——集成运算放大器(1)
  13. 收益率-计算方法介绍
  14. elementui Messagebox确认消息弹框中没有取消按钮
  15. c语言生成exe文件,打开exe文件闪退怎么办
  16. 生成树协议 STP(Spanning Tree Protocol)
  17. 2、GIT---时光穿梭机
  18. 爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?
  19. Web函数请求多并发上线,Web服务部署更快更省
  20. Python基础:break语句知识详解

热门文章

  1. 区块链 以太坊 验证区块
  2. Hyperledger Fabric教程(2)-- byfn.sh分析-生成身份证书
  3. MyBatis学习(二)使用注解开发、Mybatis 执行流程、一对多多对一的结果集映射
  4. springboot框架学习理解下
  5. mysql备份文件无法回退_mysql备份灵活恢复
  6. lc滤波器是利用电感的感抗_“电感”的作用与使用方法
  7. js 音乐播放器(audio属性及其使用方法)
  8. mysql MyISAM和InnoDB
  9. 涿州有没有java_谁说涿州没有方言?
  10. Spring 全局异常拦截根据业务返回不同格式数据 自定义异常