单例模式

单例模式 “饿汉式”

不管你用的用不上,一开始就建立这个单例对象

 

public class Single(){
   private static Single instance = new Single(); //私有,静态的 类自身实例
   private Single(){} //私有的构造函数
   public static Single getInstance(){ //公开,静态的工厂方法
     return instance;
   }

}

 

public class Single(){

  private static Single instance = null; //不建立对象

  private Single(){}

  public static Single getInstance(){ //公开,静态的工厂方法
         if(instance== null) { //先判断是否为空
                instance = new Single(); //懒汉式做法
         }
         return instance ;
    }

}


因此,对于资源密集,配置开销较大的单体更合理的做法是将实例化(new)推迟到使用它的时候。
即惰性加载(Lazy loading),它常用于那些必须加载大量数据的单体。
例如:

程序员定义的一个读取配置文件的工具类。在项目中可能多次使用这个类,如果每次都new一个实例出来,这样在运行期间就会存在很多实例,而实际上只需要一个实例对象就可以了。多出来的实例对象会浪费内存资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值