Singleton——单例模式

原创 2013年12月05日 01:40:52

一、定义

     在GOF中,对单例模式的意图这样描述:(1)保证一个类仅有一个实例 (2)提供一个访问它的全局访问点。

二、场景设计

    在有些环境下,我们需要某个类只能有一个实例。例如一颗文件树中的缓存结构,对于系统中的所有文件,只需要一个缓存实例。还有,系统中的回收站,同样也只需要一个实例。

       怎样做到一个类只有一个实例并且这个实例易于被访问?这里将这个类的构造函数设为保护或者私有的,这样就无法在外部构建这个类的对象。同时,在类内部用一个静态对象句柄(下图的uniqueInstance)来引用唯一的一个实例。在外部访问时,通过Instance()静态公共方法获取唯一的这个实例。

三、类图


                            


      客户只能通过Singleton的Instance操作访问一个Singleton实例。

      并且单例在是实现时,常使用惰性初始化,即第一次访问它的时候进行初始化:

	public static Singleton Instance()
	{
		if(uniqueInstance==null)
		{
			uniqueInstace=new Singleton();
		}
		return uniqueInstance;
	}
        同时,由于单例模式全局只有一个对象,这样访问该对象时,自然要考虑到多线程的问题,这点要注意。

        单例模式很简单,就介绍到这里。

相关文章推荐

单例模式singleton —— I

单例模式 @sunRainAmazing 单例模式 - 只有一个实例程序在运行的时候,通常会有很多的实例。 例如,我们创建 100 个字符串的时候,会生成 100 个 String 类的实例。 但...

单例模式(Singleton Pattern)——独一无二的对象

前言 概述 定义 注意 类图 设计模式的实现 懒汉式线程不安全 懒汉式线程安全 饿汉式线程安全但是不是延迟加载 双检锁双重校验锁DCL即double-checked locking线程安全 登记式静态...

单例模式——Singleton

GOF的《设计模式》中这样描述:保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能阻止你实例化多个对象。一个最好的办法是,让类自身负责保存它的...

java Singleton单例模式

  • 2010年06月21日 09:07
  • 59KB
  • 下载

【一】设计模式——单例模式(Singleton Pattern)

设计模式——单例模式 简单快捷的了解设计模式
  • yk3372
  • yk3372
  • 2016年11月26日 17:04
  • 229

单例模式(Singleton)的6种实现

  • 2017年11月02日 11:14
  • 1.17MB
  • 下载

Android Singleton单例模式Demo

  • 2016年07月14日 22:15
  • 16.55MB
  • 下载

模式五:单例模式(Singleton Pattern)——创建独一无二的对象

单例模式 确保一个类只有一个实例,并提供一个全局访问点。 应用分析 还有一些对象其实我们只需要一个,比如说:线程池(threadpool)、缓存(cache)、对话框、处理偏好设置和注册表的对象、日志...

单例模式Singleton

  • 2012年10月22日 21:59
  • 47KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Singleton——单例模式
举报原因:
原因补充:

(最多只允许输入30个字)