设计模式中的单例模式是一个在实际应用中用的比较多的一种设计模式,一般用于连接池,日志文件,配置文件之类的地方。单例单例,即只有一个实例化的对象,首先要做到这一点就不能让外部的类有实例化该类的对象的功能,所以应该将构造函数设为私有,然后在类创建唯一的一个实例,并给一个公有方法来使外部得到实例。
直接上代码:
/*
* 单例模式的实现
*/
public class Singleton {
//1.将构造函数私有化,防止外部能实例化该类对象
private Singleton(){
}
//2.在类中实例化对象,并用private static修饰
private static Singleton instance=new Singleton();
//3.创建一个公有方法,使得外部能得到唯一的一个实例
public static Singleton getInstance(){
return instance;
}
}
这是单例模式中饿汉模式的一种实现方式,在外部进行调用时直接就创建了对象,还有一种懒汉模式的实现,如下:
/*
* 懒汉模式的实现
*/
public class Singleton {
//1.将构造函数私有化,防止外部能实例化该类对象
private Singleton(){
}
//2.声明一个singleton对象,并用private static修饰
private static Singleton instance;
//3.判断如果为空就实例化对象,否则直接返回instance
public static Singleton getInstance(){
if (instance==null) {
instance=new Singleton();
}
return instance;
}
}
懒汉模式和饿汉模式的区别在于线程的安全性,也在于一个直接实例化对象,一个只是先声明,然后判断是否存在再实例化。