码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript设计模式与开发实践-第4章-单例模式

时间:2016-05-16 01:59:33      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

单例模式的定义:保证一个类只有一个实例,并且提供一个访问它的全局访问点

实现单例模式:将单例模式类的实例保存,每次创建新实例的时候检查之前有没有实例被保存,有的话就返回原先的实例

使用代理实现单例模式:将单例模式实际要做的“事情”和“判断是否单例”分离编码(实际上这里和下面的getSingle的目的相同,这里是基于“类”的实现)

 1 var ProxySingletonCreateDiv = (function(){
 2 
 3     var instance;
 4     return function( html ){
 5         if ( !instance ) {
 6             instance = new CreateDiv(html);
 7             return instance;
 8         }
 9         return instance;
10     }
11 
12 })();

 

如何更好的使用全局变量:

  • 使用命名空间
  • 使用闭包封装私有变量

 

通用的惰性单例:将“创建实例对象”和“管理单例”的职责分别放置在两个方法里面,其中重点是管理单例的方法-getSingle()。

1 var getSingle = function( fn ){
2     var result;
3     // 这里形成闭包
4     return function(){
5         // 括号里面的内容做了两件事:创建实例以及将实例储存进闭包
6         return result || ( result = fn.apply(this,arguments) );
7     }
8 };

 

JavaScript设计模式与开发实践-第4章-单例模式

标签:

原文地址:http://www.cnblogs.com/magicshow/p/5496793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!