单例模式
单例模式
单例设计模式,就是采用一定方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法
饿汉式方法实现单例模式
class Bank{
//私有化构造方法
private Bank(){
}
//直接声明对象
private static Bank bank = new Bank();
//通过静态方法返回该对象
public static Bank getBank() {
return bank;
}
}
懒汉式方法实现单例模式
class Bank{
//私有化构造方法
private Bank(){
}
//声明对象为空
private static Bank bank = null;
//在调用get方法是实例化对象,再通过静态方法返回该对象
public static Bank getBank() {
//如果bank为空,则实例化bank
if (bank == null){
bank = new Bank();
}
return bank;
}
}
对比两种方式的区别
饿汉式立即加载(随着类的加载而加载),懒汉式延迟加载(在需要使用时创建)
饿汉式写法简单,由于内存中较早加载,使用更方便更快。但在内存中占用时间长。线程安全
懒汉式在需要的时候创建,节省内存空间,线程不安全