懒加载模式”又叫“懒汉模式”是指当第一次使用到这个属性时才给这个属性对应的成员变量进行初始化,如果程序还没运行到这个地方就不进行相应的创建和初始化有利于节省资源提高性能。与之对应的还用一种模式叫做“饿汉模式”就是程序一启动就初始化相应的成员变量,不管当时有没有用到先创建并初始化了再说,所以这种模式相对来说不需要程序员考虑那么详细,会耗费一点资源。
要知道,如果get方法中不进行懒加载设置(这个设置包括创建一个变数组对象,并将这个对象赋给工具类HMMusicTool的成员变量_musics),直接返回tool.musics将会是空的nil。属性musics对应的成员变量_musics本质是一个指针,既然是指针如果不给它赋值,_musics就是一个空指针nil。可以这样理解:当定义一个musics属性时,只是声明了一个空的(nil)可变数组指针_musics,如果你不给它指定一个可变数组对象,让指针_musics指向这个可变数组,那么这个指针就还是声明时的状态,即nil(空指针,谁都不指向)。