单例模式是设计模式中最常用且简单的模式。我常用这样一个例子来理解单例模式,有一个仓库,仓库有一个管理员,我们要经常去仓库拿东西,放东西,查看东西等等,而这写操作都是要管理员帮我们做,所以每次去仓库都需要调用管理员的这些方法。但是大家想想,难道每个人去仓库办事都需要new出一个管理员么?如果这样的话,那系统中将会有多少管理员对象呢,不仅仅浪费内存,而且感觉不安全。所以最好系统只有一个管理员。这就是单例模式。在实际应用中,举个例子,譬如对用户增删改查的管理类,对任何实体类进行增删改查的服务类等等都应该是单例模式。单例模式最常用的实现如下:
public class Singleton {
//第一种办法,饿汉式
/*private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance();
}*/
//第二种办法,懒汉式
private static Singleton instance = null;
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}