单例模式(Singleton)-保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2010-11-25 15:47
99 查看
单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。
(1)懒汉式实现示例代码如下:
(2)饿汉式实现,示例代码如下:
关于饿汉式、懒汉式的名称说明:
饿汉式、懒汉式其实是一种比较形象的称谓。
所谓饿汉式,既然饿,那么在创建对象实例的时候就比较着急,饿了嘛,于是就在装载类的时候就创建对象实例,写法如下:
private static Singleton uniqueInstance = new Singleton();
所谓懒汉式,既然是懒,那么在创建对象实例的时候就不着急,会一直等到马上要使用对象实例的时候才会创建,懒人嘛,总是推托不开的时候才去真正执行工作,因此在装载对象的时候不创建对象实例,写法如下:
private static Singleton uniqueInstance = null;
而是等到第一次使用的时候,才去创建实例,也就是在getInstance方法里面去判断和创建
示例代码转自:http://student.csdn.net/space.php?uid=1294199&do=blog&id=48260
(1)懒汉式实现示例代码如下:
/** * 懒汉式单例实现的示例 */ public class Singleton { /** * 定义一个变量来存储创建好的类实例 */ private static Singleton uniqueInstance = null; /** * 私有化构造方法,可以在内部控制创建实例的数目 */ private Singleton(){ // } /** * 定义一个方法来为客户端提供类实例 * @return 一个Singleton的实例 */ public static synchronized Singleton getInstance(){ //判断存储实例的变量是否有值 if(uniqueInstance == null){ //如果没有,就创建一个类实例,并把值赋值给存储类实例的变量 uniqueInstance = new Singleton(); } //如果有值,那就直接使用 return uniqueInstance; } /** * 示意方法,单例可以有自己的操作 */ public void singletonOperation(){ //功能处理 } /** * 示意属性,单例可以有自己的属性 */ private String singletonData; /** * 示意方法,让外部通过这些方法来访问属性的值 * @return 属性的值 */ public String getSingletonData(){ return singletonData; } } |
/** * 饿汉式单例实现的示例 */ public class Singleton { /** * 定义一个变量来存储创建好的类实例,直接在这里创建类实例,只能创建一次 */ private static Singleton uniqueInstance = new Singleton(); /** * 私有化构造方法,可以在内部控制创建实例的数目 */ private Singleton(){ // } /** * 定义一个方法来为客户端提供类实例 * @return 一个Singleton的实例 */ public static Singleton getInstance(){ //直接使用已经创建好的实例 return uniqueInstance; } /** * 示意方法,单例可以有自己的操作 */ public void singletonOperation(){ //功能处理 } /** * 示意属性,单例可以有自己的属性 */ private String singletonData; /** * 示意方法,让外部通过这些方法来访问属性的值 * @return 属性的值 */ public String getSingletonData(){ return singletonData; } } |
饿汉式、懒汉式其实是一种比较形象的称谓。
所谓饿汉式,既然饿,那么在创建对象实例的时候就比较着急,饿了嘛,于是就在装载类的时候就创建对象实例,写法如下:
private static Singleton uniqueInstance = new Singleton();
所谓懒汉式,既然是懒,那么在创建对象实例的时候就不着急,会一直等到马上要使用对象实例的时候才会创建,懒人嘛,总是推托不开的时候才去真正执行工作,因此在装载对象的时候不创建对象实例,写法如下:
private static Singleton uniqueInstance = null;
而是等到第一次使用的时候,才去创建实例,也就是在getInstance方法里面去判断和创建
示例代码转自:http://student.csdn.net/space.php?uid=1294199&do=blog&id=48260
相关文章推荐
- 单例模式--能够保证一个类仅有唯一的实例,并提供一个全局访问点。
- SingleTon 要求一个类有且仅有一个实例,并提供一个全局的访问点.
- 单例模式--确保一个类只有一个实例,并提供一个全局访问点。
- 保证一个类仅有一个实例:单例模式
- GOOD单例模式,多线程同时访问一个实例对象问题的处理,加lock
- JAVA文件锁之保证仅有一个实例运行
- iphone的单态(singleton)设计模式(即全局单实例模式)
- iphone的单态(singleton)设计模式(即全局单实例模式)
- iphone的单态(singleton)设计模式(即全局单实例模式)
- 单例模式的运用-保证实例化一个抽象工厂
- 单例模式的运用-保证实例化一个抽象工厂
- 正在学设计模式呵,转载一篇如何保证一个窗体的实例运行
- 单例模式,多线程同时访问一个实例对象问题的处理,加lock .
- 能否写一个单例模式,并且保证实例的唯一性?
- iphone的单态(singleton)设计模式(即全局单实例模式)
- Java设计模式(5)Singleton模式 只有一个实例
- Singleton单例模式是最简单的设计模式,它的主要作用是保证在程序执行生命周期中,使用了单类模式的类仅仅能有一个实例对象存在。
- 为全局、静态、单件实例的类提供一个Release接口是非常必要的。让其在析构里面什么也不做。
- C++设计模式5--单例模式Singleton--当前对象只有一个实例
- C++设计模式5--单例模式Singleton--当前对象只有一个实例 .