javascript设计模式_第二部分_单体模式

 单体模式
优点:把代码组织得一致并隔离,更容易阅读和维护,提高稳定性;用于优化,提升性能
缺点:可导致强耦合

5.1 单体的基本结构

 

严格按定义来说,C1不是一个单体,因为它不是一个可实例化的类
对象字面量只是创意单体的方式之一.
并非所有的对象字面量都是单体,只用来模仿关联数组及容纳数据的就不是单体.

5.2 划分命名空间

 

5.3 用作特定网页专用代码的包装器的单体

 

 

某网页专用代码,最好馐在自己的单体对象中

5.4 拥有私用成员的单体
 1) 下划线表示法

 

 

    2) 使用闭包
     

 

这种方式与直接使用对象字面量没什么区别,但这个包装函数创建了一个可以用来添加私用成员的闭包,任何添加在这个匿名函数中而不在对象字面量中的都将成为私有成员


        试比较

 

 
       
5.5 惰性实例化(lazy loading)

 

 

 开销大的单体,合理的做法是将其实例化推迟到需要使用的时候
    方法步骤:
    1)将单体所有代码移到一个方法中如constructor(),这个方法不能从闭包外访问.
 2)用一个属性判断是否已实例化过
    3)返回这个实例
   
5.6 分支(branching)
 把差异封装到运行期间进行设置的动态方法中的技术,适合于针对特定的环境做判断

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值