“懒加载”也被叫作“延迟价值”,它的核心思想是把对象的实例化延迟到真正调用该对象的时候,这样做的好处是可以减轻大量对象在实例化时对资源的消耗,而不是在程序初始化的时候就预先将对象实例化。另外“懒加载”可以将对象的实例化代码从初始化方法中独立出来,从而提高代码的可读性,以便于代码能够更好地组织。
最典型的一个应用“懒加载”的例子是在对象的getter方法中实例化对象,例如getter方法被重写,使得在第一次调用getter方法时才实例化对象并将实例化的对象返回,并且需要通过判断对象是否为空来防止对象重复实例化。“懒加载”的getter方法的实现模板如下所示。
其他LazyLoad的思想都是这样:拖到最后一刻,万不得已了,才开始占用资源,这在iPhone这种内存较少的设备上是很有必要的。