为了一个类生成一个唯一的对象.最常用的地方是数据库连接.使用单例模式生成对象后,可以被其他众多对象使用.

单例模式的特点:

1 . 单例类只能有一个实例。

2 . 单例类必须自己创建自己的唯一实例。

3 . 单例类必须给所有其它对象提供这一实例。

应用案例

<?php/*mysql类被实例后需要连接数据库,当mysql类多次被调用的时候,就会获得多个对象.此时会频繁的连接数据库.造成不必要的资源浪费.因为每个对象其实是一样的.因此只要一个对象就行了.这时就有必要用单例模式.  */class mysql{public static $object = null;  //利用权限来阻止外部实例对象 protected function __construct(){}//获取实例对象public static instance(){if(self::$object === null){   //如果静态变量里没有对象,则创建一个对象.否则用之前存储的对象.self::$object = new self();}return self::$object;}}
?>

转载于:https://www.cnblogs.com/tlijian/p/3590265.html

单例(Singleton)模式相关推荐

  1. 设计模式学习笔记——单例(Singleton)模式

    设计模式学习笔记--单例(Singleton)模式 @(设计模式)[设计模式, 单例模式, Singleton, 懒汉式, 饿汉式] 设计模式学习笔记单例Singleton模式 基本介绍 单例案例 类 ...

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

    模式意图 保证一个类只用一个实例,并且提供一个全局访问点 类图 应用场景 1.需要更严格地控制全局变量时,使用单例模式: 2.重量级的对象如线程池对象,数据库连接池对象,不需要多个实例的对象如工具类等 ...

  3. 设计一个线程安全的单例(Singleton)模式

    在设计单例模式的时候.尽管非常easy设计出符合单例模式原则的类类型,可是考虑到垃圾回收机制以及线程安全性.须要我们思考的很多其它.有些设计尽管能够勉强满足项目要求,可是在进行多线程设计的时候.不考虑 ...

  4. 设计模式C++描述----01.单例(Singleton)模式

    一.概念 单例模式:其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享. class CSingleton { //公有的静态方法,来获取该实例 public: s ...

  5. 单例/单体模式(Singleton)

    单例/单体模式(Singleton) 首先,单例模式是对象的创建模式之一,此外还包括工厂模式.单例模式的三个特点: 1,该类只有一个实例 2,该类自行创建该实例(在该类内部创建自身的实例对象) 3,向 ...

  6. 单例测试模式中【饿汉式】与【懒汉式】的区别

    package day25.thread;/** /*** @author Mr Chen* @create 2018-10-09 18:37* 单例测试模式:保证类在内存中只有一个对象*/ publ ...

  7. 跨应用程序域(AppDomain)的单例(Singleton)实现

    转载自: 跨应用程序域(AppDomain)的单例(Singleton)实现 - CorePlex代码库 - CorePlex官方网站,Visual Studio插件,代码大全,代码仓库,代码整理,分 ...

  8. Ruby设计模式透析之 —— 单例(Singleton)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8868758 此为Java设计模式透析的拷贝版,专门为Ruby爱好者提供的,不熟悉R ...

  9. 我心中的核心组件(可插拔的AOP)~第十五回 我的日志组件Logger.Core(策略,模版方法,工厂,单例等模式的使用)...

    回到目录 之前的讲过两篇关于日志组件的文章,分别是<第一回  日志记录组件之自主的Vlog>和<第三回  日志记录组件之log4net>,而今天主要说一下我自己开发的另一种日志 ...

  10. 单例Singleton

    先提供一个完整版: // .h文件 @interface SingleTon : NSObject /** 获取单例对象*/ + (instancetype)sharedInstance; + (in ...

最新文章

  1. 分享一个python cookbook的在线教程地址
  2. 【bzoj3280】小R的烦恼 费用流
  3. css清除浮动的原理
  4. Android 系统(171)---OrmLite数据库框架,Picasso框架,Okio框架,OKHttp框架
  5. android:inputType 参数详解
  6. http://www.cnblogs.com/huxj/archive/2009/11/21/1607791.html
  7. 10.数据结构 --- 内部排序
  8. poj 1753 Flip Game (高斯消元 + 枚举 自由变量)
  9. 楼板计算塑形弹性_阶梯教室板模板支架工程方案计算书(仅供参考)
  10. VMWare Fusion 安装 Centos7操作系统
  11. 使用iPhone系统设置开发者,进行弱网测试
  12. java解析pdf 图片文字_Java 读取PDF中的文本和图片
  13. Day050--jQuery表单事件 轮播图 插件库 ajax
  14. solrcloud入门详细使用教程
  15. Redis数据类型实践
  16. 使用SPDLinks将.brd文件转换为.spd文件
  17. 看完多线程通透了(爆干4万字)
  18. win10 + uefi
  19. 自学python还是报班-自学python还是报班学?老男孩培训Python开发
  20. Python入门自学进阶-Web框架——34、富文本编辑器KindEditor、爬虫初步

热门文章

  1. linux内存管理实验malloc,linux内存管理实验报告.doc
  2. Eclipse中svn插件:Subclipse插件安装
  3. 连接虚拟机mysql无法访问_连接虚拟机mysql无法访问,报错编号1130的解决方法
  4. mybatis 原理_图解源码 | MyBatis的Mapper原理
  5. php画图取色,procreate怎么取色
  6. 水凝胶 静电纺丝_北理工赵扬ACS Nano:在水凝胶纺织软体机器人方面取得进展
  7. jlink v9可升级固件‘_STM32WB的硬核功能 - 无线固件升级FUOTA
  8. 服务器可视化_疫情来袭,30分钟学会用python开发部署疫情可视化网站
  9. elasticsearch之Recovery
  10. azkaban安装编译3.86 教程