单例模式是Java中最常见的模式,涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建,提供了访问该类的唯一方式,可以直接访问无需实例化其对象。
要实现一个单例必须私有化其构造方法,然后有一个静态的方法能够被外界的类所调用访问(无论是懒汉还是恶汉模式)。
1.懒汉模式
private static Singleton singleton=null;
privateSingleton(){}; //私有化构造方法
public static Singleton getSing(){ //静态方法
if(singleton==null){
singleton=new Singleton();
}
return singleton;
}
public void login(){
System.out.println("这是单例懒汉模式");
}
}
2.恶汉模式
public class Singleton1 {
private static Singleton1 sing=new Singleton1();
private void Singleton1() {
}
public static Singleton1 name() {
return sing;
}
public void rname() {
System.out.println ("这里是单例饿汉模式");
}
}
懒汉与恶汉的区别在于实例化的位置不同,懒汉在调用的时候才进行实例化,恶汉先进行了实例化。一般我们都使用懒汉模式,不推荐使用恶汉模式。