单例模式

原创 2015年07月08日 14:50:02
有些对象我们只需要一个,比如:
配置文件、工具类、线程池、缓存、日志对象等

单例模式:保证某个应用中某个实例有且只有一个

单例模式的恶汉模式实现:

public class Singleton {
	//1.将构造方法私有化,不允许外部直接创建对象
	private Singleton(){		
	}
	
	//2.创建类的唯一实例,使用private static修饰
	private static Singleton instance=new Singleton();
	
	//3.提供一个用于获取实例的方法,使用public static修饰
	public static Singleton getInstance(){
		return instance;
	}
}
单例模式的懒汉模式实现:
public class Singleton2 {
	//1.将构造方式私有化,不允许外边直接创建对象
	private Singleton2(){
	}
	
	//2.声明类的唯一实例,使用private static修饰
	private static Singleton2 instance;
	
	//3.提供一个用于获取实例的方法,使用public static修饰
	public static Singleton2 getInstance(){
		if(instance==null){
			instance=new Singleton2();
		}
		return instance;
	}
}

二者的区别:饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全
                     懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全

测试方法:

public class Test {
	public static void main(String[] args) {
		//饿汉模式
		Singleton s1=Singleton.getInstance();
		Singleton s2=Singleton.getInstance();
		if(s1==s2){
			System.out.println("s1和s2是同一个实例");
		}else{
			System.out.println("s1和s2不是同一个实例");
		}
		
		//懒汉模式
		Singleton2 s3=Singleton2.getInstance();
		Singleton2 s4=Singleton2.getInstance();
		if(s3==s4){
			System.out.println("s3和s4是同一个实例");
		}else{
			System.out.println("S3和s4不是同一个实例");
		}
		
	}
}




相关文章推荐

单例模式

  • 2015年06月24日 10:08
  • 21KB
  • 下载

Android线程池+单例模式+webService

  • 2017年11月01日 10:36
  • 50.14MB
  • 下载

java 双重检查锁定及单例模式

双重检查锁定及单例模式全面理解这一失效的编程习语Peter Haggar , 高级软件工程师, IBMPeter Haggar 是 IBM 在北卡罗来纳州的 Research Triangle Pa...
  • kufeiyun
  • kufeiyun
  • 2011年01月27日 15:09
  • 15621

单例模式

  • 2013年11月14日 14:44
  • 24KB
  • 下载

单例模式详解

  • 2014年06月06日 00:14
  • 25KB
  • 下载

双重检查锁定(double-checked locking)与单例模式

单例模式有如下实现方式:package com.zzj.pattern.singleton; public class Singleton { private static Singleton i...

单例模式学习

  • 2013年01月06日 15:20
  • 3KB
  • 下载

耦合和单例模式的理解

  • 2014年08月18日 09:28
  • 21KB
  • 下载

Python单例模式的4种实现方法

#-*- encoding=utf-8 -*- print '----------------------方法1--------------------------' #方法1,实现__new__方法...

java单例模式

  • 2013年06月07日 14:58
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单例模式
举报原因:
原因补充:

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