码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之单例模式

时间:2015-05-24 14:15:32      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:java   设计模式   singleton   

设计模式的概念:

是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结


设计模式的目的:

使用设计模式是为了可重用代码、让代码更容易被他人理解保证代码可靠性


单例模式:

在程序开发的过程中,有些对象我们只需要一个,比如:

配置文件、工具类、线程池、缓存、日志等

如果创造出多个实例,就会导致许多问题,比如占用过多资源,不一致的结果等

单例模式就是保证当前程序中某个类的对象有且只有一个实例


单例模式有两种:

1.饿汉模式

/**
 * 单例模式之懒汉模式
 */
public class Singleton01 {

	//2.创建类的唯一实例,该实例为私有的、静态的
	private static Singleton01 instance = new Singleton01();
	
	//1.将构造方法设置为私有,不允许外部直接创建对象
	private Singleton01(){
		
	}
	
	//3.提供一个用于获取实例的方法,该方法为静态的
	public static Singleton01 getInstance(){
		return instance;
	}
}


2.懒汉模式

/**
 * 单例模式之饿汉模式
 */
public class Singleton02 {

	//2.创建类的唯一实例变量,但并不初始化,该实例变量为私有的、静态的
	private static Singleton02 instance;
	
	//1.将构造方法设置为私有,不允许外部直接创建对象
	private Singleton02(){
		
	}
	
	//3.提供一个用于获取实例的方法,该方法为静态的
	public static Singleton02 getInstance(){
		if(instance == null){
			instance = new Singleton02();
		}
		return instance;
	}
}


3.懒汉模式和饿汉模式的区别:

(1)饿汉模式的特点是加载类的时候比较慢,但运行时获取对象的速度比较快;懒汉模式的特点是加载类的时候比较快,但运行时获取对象的速度比较慢;

(2)饿汉模式的线程安全的,懒汉模式是线程不安全的,需要同步多线程访问的资源;



设计模式之单例模式

标签:java   设计模式   singleton   

原文地址:http://blog.csdn.net/bear_huangzhen/article/details/45949847

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!