那些开源程序中让人叹为观止的代码 - 2 单例模式
2014-04-10 14:39
375 查看
单例模式
解决问题:只执行一次的函数开源程序:underscore
有时候我们会需要使用单例模式,比如需要一个函数,这个函数在整个应用运行的时候只被访问一次。如果再次访问就会访问上次的执行结果。
这个需求的一个经典实现可以在underscore的代码中找到:
_.once = function(func) { var ran = false, memo; return function() { if (ran) return memo; ran = true; memo = func.apply(this, arguments); func = null; return memo; }; };
once能确保func只调用一次,如果用func返回一个什么对象,这个对象成了单例。源码也比较简单,无非就是用一个标志位来标示是否运行过,缓存返回值。可以说,这是闭包应用的一个比较经典的实例。
相关文章推荐
- 那些开源程序中让人叹为观止的代码 - 1 浏览器特性判断
- 那些开源程序中让人叹为观止的代码 - 3 保持元素纵横比
- GitHub上深度学习Caffe开源程序代码
- 那些出现在电影中的程序代码
- 那些出现在电影中的程序代码
- C语言系列(二):最近重拾C语言的想法,谈到C中易错点,难点;以及开源代码中C语言的一些常用技巧,以及如何利用define、typedef、const等写健壮的C程序
- 游戏王,查卡器,编号,开源,代码,OCG,程序
- 计算机视觉算法开源实现 代码程序 Computer Vision Algorithm Implementations
- Cocoa录音程序开源代码
- C51单片机 SIM900A 手机给门禁解锁 智能家居 【C程序代码已开源,更新至Ver4.0】
- 游戏王,查卡器,编号,开源,代码,OCG,程序
- 游戏王,查卡器,编号,开源,代码,OCG,程序
- 开源BT客户端程序arctic代码阅读笔记
- 上班时候,老被腾讯弹出来的新闻打扰,很少烦恼,于是编写了一小程序,用于彻底解决这个问题,并代码开源,以防杀毒软件告诉你是病毒
- C语言系列(四):最近重拾C语言的想法,谈到C中易错点,难点;以及开源代码中C语言的一些常用技巧,以及如何利用define、typedef、const等写健壮的C程序
- 开源代码:我做的天气预报服务程序[全C#源码]
- 代码变成可执行程序期间,编译器做了那些事?
- malware-analysis (开源恶意代码检测程序发布)