php设计模式 — 单例模式(singleton)
请学习此单例模式之前,请选阅读另外的设计模式
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)相关推荐
- Android设计模式——单例模式(Singleton)
二十三种设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元 ...
- 常见设计模式—单例模式(Singleton)
前言 好久没写东西了,但是想着无论什么事还是要坚持自己初心要坚持的东西.写东西不能断! 对于常用的23种设计模式,这里笔者会根据自己学习和出现频率.重要程度进行学习记录吧.并且每种设计模式可能会根据暂 ...
- C++设计模式--单例模式(Singleton)及单例通用模板
概述 C++中的单例模式应该是设计模式中最简单的了,在编码中常见到.那么,简单的总结下 C++中的单例模式写法,以及根据单例模式扩展后的一些写法,最后还有单例的通用模板,可用于快捷创建一个单例类. 单 ...
- 设计模式 -- 单例模式(Singleton)
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- 主要内容包括: 初始单例 ...
- 设计模式——单例模式(Singleton)
保证一个类仅有一个实例,并提供一个访问它的全局访问点.--DP UML类图 模式说明 个人认为单例模式是所有设计模式中最为简单的一个模式,因为实现这个模式仅需一个类,而不像其他模式需要若干个类.这个模 ...
- Python 设计模式: 单例模式(singleton pattern)
2019独角兽企业重金招聘Python工程师标准>>> 如果想在整个程序的运行过程中,某个类只有一个实例的话,可以通过单例模式来实现. 在 Python 中实现单例模式有很多种方式, ...
- 解读设计模式----单例模式(Singleton Pattern)
单例模式可以保证一个类有且只有一个实例,并提供一个访问它的全局访问点.在程序设计中,有很多情况需要确保一个类只能有一个实例.从这句话可以看出,Singleton模式的核心:如何控制用户使用new对一个 ...
- JAVA设计模式-单例模式(Singleton)线程安全与效率
一,前言 单例模式详细大家都已经非常熟悉了,在文章单例模式的八种写法比较中,对单例模式的概念以及使用场景都做了很不错的说明.请在阅读本文之前,阅读一下这篇文章,因为本文就是按照这篇文章中的八种单例模式 ...
- 设计模式---单例模式Singleton
/*** 饿汉式* 类加载到内容后,就实例化一个实例,* JVM保证线程安全: JVM保证每一个Class只会load到内存一次,static关键字是在Class load到内存之后马上就行初始化,也 ...
- 趣谈设计模式 | 单例模式(Singleton) :独一无二的对象
文章目录 单例模式 饿汉模式 懒汉模式 懒汉和饿汉的区别 单例模式 一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全 局访问点,该实例被所有程序模块共享. ...
最新文章
- 基于大数据开发套件定时调度带资源文件的MapReduce作业
- Trie 树——搜索关键词提示 1
- Linux正则和grep命令
- java jquery基础_day20:JQuery基础(超系统的JavaWEB全套教程)
- 算法六之直接插入排序
- Linux系统编程21:基础IO之全缓冲和行缓冲的区别及深刻理解缓冲区及其作用
- UITableView 系列二 :资料的设定方式 (Navigation Controller切换视图) (实例)
- kafka0.9 java commit_Kafka 0.9 新消费者API
- Apache与Nginx服务器对比
- 原创 | 职场风云 (五)成长的烦恼
- java webservice调用sap_java调用sap webservice
- 模拟电路——集成运算放大器(1)
- 收益率-计算方法介绍
- elementui Messagebox确认消息弹框中没有取消按钮
- c语言生成exe文件,打开exe文件闪退怎么办
- 生成树协议 STP(Spanning Tree Protocol)
- 2、GIT---时光穿梭机
- 爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?
- Web函数请求多并发上线,Web服务部署更快更省
- Python基础:break语句知识详解
热门文章
- 区块链 以太坊 验证区块
- Hyperledger Fabric教程(2)-- byfn.sh分析-生成身份证书
- MyBatis学习(二)使用注解开发、Mybatis 执行流程、一对多多对一的结果集映射
- springboot框架学习理解下
- mysql备份文件无法回退_mysql备份灵活恢复
- lc滤波器是利用电感的感抗_“电感”的作用与使用方法
- js 音乐播放器(audio属性及其使用方法)
- mysql MyISAM和InnoDB
- 涿州有没有java_谁说涿州没有方言?
- Spring 全局异常拦截根据业务返回不同格式数据 自定义异常