单例模式作为一个最简单的设计模式,是自己在第一次开始设计模式的过程中唯一明白了一些的设计模式,也是自己很长有一段时间唯一能够说出一个所以然的设计模式。
单例模式是通过一私有的构造方法实现的,它分为:懒汉式和饿汉式两种,区别是一个是不管是否被调用,先把对象New出来,调用就提供;一个是先不建对象,被调用的时候,判断对象是不是已经存在了,没有就New,存在就直接提供。
懒汉式:
Class Singleton(){
private static singleton = new Singleton();
private Singleton(){}
public Singleton getSingleton(){
return singleton;
}
}
饿汉式:
Class Singleton(){
private static singleton = null;
private Singleton(){}
public Singleton getSingleton(){
if(singleton != null){
return singleton;
}else{
singleton = new Singleton();
return singleton;
}
}
}
单例模式的使用场景:
1. 有频繁的创建销毁的对象,可以考虑使用了单例
2. 对象创建非常耗费时间或资源,但是有经常使用的对象。
在java中,饿汉式要优于懒汉式,但是在C++中懒汉式优于饿汉式。
原文:http://www.cnblogs.com/hyiam/p/3631217.html