单例模式
懒汉式:
//单例的懒汉式实现
class Order{
//1.私有化类的构造器
private Order(){
}
//2.声明当前类对象,没有初始化。
//此对象也必须声明为 static 的
private static Order instance = null;
//3.声明 public、static 的返回当前类对象的方法
public static Order getInstance(){
if(instance == null){
instance = new Order();
}
return instance;
}
饿汉式:
//单例的饿汉式
class Bank{
//1.私有化类的构造器
private Bank(){
}
//2.内部创见类的对象
//4.要求此对象也必须声明为静态的
private static Bank instance = new Bank();
// public static final Bank instance=new Bank(); 也可以这样写
//3.提供公共的静态的方法,返回类的对象。
public static Bank getInstance(){
return instance;
}
}
饿汉式:坏处:对象加载时间过长。 好处:饿汉式是线程安全的。 懒汉式:好处:延迟对象的创建。 坏处:目前的写法,会线程不安全。
线程安全的懒汉式:
class Bank{
private Bank(){}
private static Bank instance = null;
public Bank getInstance(){
if (instance ==null){//效率更高
synchronized (Bank.class){
if (instance==null){
Bank instance=new Bank();
return instance;
}
}
}
return instance;
}
}