单体(singleton)模式是javascript中最基本最常用的模式之一,常用来划分命名空间、模块化代码、减少全局变量。
下面是基本结构,没什么好说的。
拥有私有成员的单体和懒加载单体值得学习下,语法很简单,主要是体会不同方式背后的编程思想。
以前常用下划线开头的方法表示私有,但这种方式只能作为一种规范,不能阻止别人恶意使用。借助闭包创建私有成员是很严格的做法,在匿名函数中定义私有变量和方法,并返回单体对象,这样只有单体中的方法才能够访问私有成员。
上两种单体都是在脚本加载时被创建出来,对于资源密集型和配置开销(内存)比较大的或者可能用不到的单体,将其实例化推迟到需要使用它的时候创建,这种技术被称为懒加载或者惰性加载(lazy loading),懒加载单体稍显复杂,但也很好理解,只有在第一次调用实例化一次。