单例模式的两种方式:懒汉式、饿汉式
1、饿汉式
/**
* 单例模式:饿汉式
*/
class Singleton{
//1、私有化构造器,使得在类的外部不能够使用此构造器
private Singleton(){
}
//2、创建该类的实例,并对其进行私有化;通过公共的方法来调用
private static Singleton singleton=new Singleton();
//3、创建一个公共的方法来调用该实例,该方法只能通过类来调用。因此设置为static的。同时类的实例也必须声明为static
public static Singleton Instance(){
return singleton;
}
2、懒汉式
/**
* 懒汉式
* 可能存在线程安全问题
*/
class Singleton1{
//创建私有化构造器
private Singleton1(){
}
//创建静态的私有化实例
private static Singleton1 singleton1=null;
//判断该实例是否为空,如果为空创建该对象实例
//创建静态的公共方法,将该实例参数传进去
public static Singleton1 getInstatnce(){
if(singleton1==null){
singleton1=new Singleton1();
}
return singleton1;
}