单体模式
优点:把代码组织得一致并隔离,更容易阅读和维护,提高稳定性;用于优化,提升性能
缺点:可导致强耦合
5.1 单体的基本结构
严格按定义来说,C1不是一个单体,因为它不是一个可实例化的类
对象字面量只是创意单体的方式之一.
并非所有的对象字面量都是单体,只用来模仿关联数组及容纳数据的就不是单体.
5.2 划分命名空间
5.3 用作特定网页专用代码的包装器的单体
某网页专用代码,最好馐在自己的单体对象中
5.4 拥有私用成员的单体
1) 下划线表示法
2) 使用闭包
这种方式与直接使用对象字面量没什么区别,但这个包装函数创建了一个可以用来添加私用成员的闭包,任何添加在这个匿名函数中而不在对象字面量中的都将成为私有成员
试比较
5.5 惰性实例化(lazy loading)
开销大的单体,合理的做法是将其实例化推迟到需要使用的时候
方法步骤:
1)将单体所有代码移到一个方法中如constructor(),这个方法不能从闭包外访问.
2)用一个属性判断是否已实例化过
3)返回这个实例
5.6 分支(branching)
把差异封装到运行期间进行设置的动态方法中的技术,适合于针对特定的环境做判断