听飞狐聊JavaScript设计模式系列06

  • A+
所属分类:JavaScript

本回内容介绍


上一回聊到JS中模拟接口,装饰者模式,掺元类,分析了backbone的继承源码,感觉还好吧!

介一回,偶们来聊一下在JS单例模式(singleton),单例模式其实运用很广泛,比如:jquery,AngularJS,underscore吖虾米的都是单例模式,来吧,直接开始咯:

1. 单例模式


保证一个类只有一个实例,从全局命名空间里提供一个唯一的访问点来访问该对象。其实之前写过的对象字面量也是一种简单单例,如下:

这就是一个简单单例了,应该很多盆友已经看出来了,没有作用域,如果要扩展私有属性和方法的话,那么就可以靠闭包来实现。

2. 闭包单例模式


顾名思义要用到闭包,作为返回实例对象,如下:

这里我们接着上边儿简单单例的例子来,稍微的改一下,改成闭包之后,就数据保证了不受外界干扰了。

3. 惰性单例模式


惰性单例就是只有在使用的时候才初始化,如下:

这个例子就是惰性单例了,也就是说只有在用的时候才会去初始化方法,这样可以更省资源。

4. 分支单例模式


分支单例就很简单了,就是做程序分支的判断,利用分支来返回相应的实例,经常用于浏览器检测,直接看代码吧,如下:

这个例子就是分支单例了,比较简单,这个例子也是模拟京东目前判断访问设备的代码。

装个逼再说。刚看到一新闻,韩雪发微博称,因为自己修改的本月套餐,上月流量就清零了,并称:“我改这个月的和上个月有什么关系吗?我付了钱的,多余的流量凭什么你说清零就清零呢?这不是霸王条款吗?”,女神都忍受不了了,哈哈~~

5. 笔试题:判断字符串中出现次数最多的字母,返回该字母及其出现次数


这个题基本上我都写了注释,难度适中,当娱乐消遣。

话说,看完文章觉得ok,客观点个赞呗,好东西多推荐推荐,让大家都知道,嘿嘿,好像有点那啥卖瓜了...

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 365免单网 0

      学习一下 嘿嘿 太深奥了