前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式之单例模式

设计模式之单例模式

作者头像
北溟有鱼QAQ
发布2019-12-18 16:44:37
3600
发布2019-12-18 16:44:37
举报
文章被收录于专栏:北溟有鱼QAQ北溟有鱼QAQ

单例模式

什么是单例模式,单例模式的作用是什么?

  1. 首先,单例模式也是我们设计模式中,最基本,经常使用的一种模式!在我们的业务代码当中,本来我们要通过Db来查询数据库,但是我们如果不是用的单例模式的时候,每次查询都要重复new Db对象并使用,这个地方就造成了系统资源的浪费。所以我们最常见的单例模式的使用,就是在数据库操作当中以及其他的I/O操作。
  2. 单例类只能有一个实例。
  3. 单例类必须自己创建自己的唯一实例。
  4. 单例类必须给所有其他对象提供这一实例。
下面实现一个简单的单例类
代码语言:javascript
复制
<?php
//创建单例
class Singleton {
	// 实例对象
	private static $_instance = null; 
	
	/**
	 * 声明一个私有的构造函数,方式通过new来实例化
	 * 关闭: 通过初始化来实例化对象
	 */
	private function __construct() {
		
	}
	
	/**
	 * 获取对象实例
	 */
	public static function getInstance() {
		// 第一次实例化开始时, self::$_instance=null
		if (is_null(self::$_instance)) {
			// 给实例属性赋值     实例化当前类
			self::$_instance = new self();
		}
		// 第二次实例化时,self::$_instance!=null
		return self::$_instance;
	}
	
	/**
	 * 关闭clone对象复制的开关
	 */
	public function __clone() {
		die("单例模式不能克隆");
	}
}

如何使用这个单例类来获取我们的实例的

代码语言:javascript
复制
<?php
Singleton::getInstance(); // 首次初始化(实例化)

通过上面的例子,我们实现了单例模式,无论我们怎样实例化类,都只能实例化一次类,大大的节省里系统资源的创建和销毁的开销

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单例模式
    • 什么是单例模式,单例模式的作用是什么?
      • 下面实现一个简单的单例类
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档