ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 软件工程 >> 深入解析单例模式

深入解析单例模式(1/6)

来源:网络整理     时间:2016-01-15     关键词:

本篇文章主要介绍了"深入解析单例模式",主要涉及到方面的内容,对于软件工程感兴趣的同学可以参考一下:   单例模式在程序设计中非常的常见,一般来说,某些类,我们希望在程序运行期间有且只有一个实例,原因可能是该类的创建需要消耗系统过多的资源、花费很多的时间,或者业...

  单例模式在程序设计中非常的常见,一般来说,某些类,我们希望在程序运行期间有且只有一个实例,原因可能是该类的创建需要消耗系统过多的资源、花费很多的时间,或者业务上客观就要求了只能有一个实例。一个场景就是:我们的应用程序有一些配置文件,我们希望只在系统启动的时候读取这些配置文件,并将这些配置保存在内存中,以后在程序中使用这些配置文件信息的时候不必再重新读取。

定义:

由于某种需要,要保证一个类在程序的生命周期当中只有一个实例,并且提供该实例的全局访问方法。

结构:

  一般包含三个要素:

  1.私有的静态的实例对象 private static instance

  2.私有的构造函数(保证在该类外部,无法通过new的方式来创建对象实例) private Singleton(){}

  3.公有的、静态的、访问该实例对象的方法 public static Singleton getInstance(){}

UML类图:

深入解析单例模式

分类:

  单例模式就实例的创建时机来划分可分为:懒汉式与饥汉式两种。

  举个日常生活中的例子:

    妈妈早上起来为我们做饭吃,饭快做好的时候,一般都会叫我们起床吃饭,这是一般的日常情况。如果饭还没有好的时候,我们就自己起来了(这时候妈妈还没有叫我们起床),这种情况在单例模式中称之为饥汉式(妈妈还没有叫我们起床,我们自己就起来的,就是外部还没有调用自己,自己的实例就已经创建好了)。如果饭做好了,妈妈叫我们起床之后,我们才慢吞吞的起床,这种情况在单例模式中称之为懒汉式(饭都做好了,妈妈叫你起床之后,自己才起的,能不懒汉吗?就是外部对该类的方法发出调用之后,该实例才建立的)。

懒汉式:顾名思义懒汉式就是应用刚启动的时候,并不创建实例,当外部调用该类的实例或者该类实例方法的时候,才创建该类的实例。是以时间换空间。

  懒汉式的优点:实例在被使用的时候才被创建,可以节省系统资源,体现了延迟加载的思想

相关图片

相关文章