1、饿汉式
class Bank{
//1.私有化一个构造函数
private Bank() {
}
//2.内部创建一个类的对象
//4.要求这个对象也是静态的
private static Bank instance=new Bank();
//3.提供公共方法,返回类的对象
public static Bank getInstance(){
return instance;
}
}
2、懒汉式
class Order{
//1.私有化类的构造器
private Order(){
}
//2.声明当前类对象,没有初始化
//4.此对象也必须声明为static
private static Order instance=null;
//3.声明public、static的返回当前类对象的方法
public static Order getInstance(){
if(instance==null){
instance=new Order();
}
return instance;
}
}
3、对比
4、线程安全的懒汉式
class Singleton{
private Singleton(){
}
private static Singleton instance=null;
public static Singleton getInstance(){
if(instance==null){
synchronized (Singleton.class){
if(instance==null){
instance=new Singleton();
}
}
}
return instance;
}
}
5、单例模式的使用场景