码迷,mamicode.com
首页 > Web开发 > 详细

JS单例设计模式

时间:2014-06-07 00:33:40      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

   单例,指的是只有一个实例的对象。

   在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有一个全局对象,才有利于协调系统整体的行为。比如在整个系统的配置文件中,配置数据有一个单例对象进行统一读取和修改,其他对象需要配置数据的时候也统一通过该单例对象来获取配置数据,这样就可以简化复杂环境下的配置管理。

   实现一:对象字面量

bubuko.com,布布扣
1 var singleton = {
2         name : value,
3         method : function(){
4                      //这里是方法内容
5         }
6  };
bubuko.com,布布扣

 

   实现二:构造函数内部判断

bubuko.com,布布扣
 1 function Construct(){
 2     // 确保只有单例
 3     if( Construct.unique !== undefined ){
 4         return Construct.unique; 
 5     }
 6     // 其他代码
 7     this.name = "NYF";
 8     this.age="24";
 9     Construct.unique = this;
10 }
bubuko.com,布布扣

  实现三:模块模式

bubuko.com,布布扣
 1 var singleton = function(){
 2       //私有变量与私有函数
 3      var privateVariable = 10;
 4 
 5      function privateFunction(){
 6         //.......
 7      }
 8 
 9      return{
10          publicProperty : true,
11 
12          publicMethod : function(){
13                privateVariable++;
14                return privateFunction();
15          }
16      };
17 }(); 
bubuko.com,布布扣

   实现四:增强的模块模式(单例必须是某种类型)

bubuko.com,布布扣
 1 var singleton = function(){
 2       var privateVariable = 10;
 3 
 4       function privateFunction(){
 5           return false;
 6       }
 7 
 8       var object = new SomeType();
 9 
10       object.publicProperty = true;
11 
12       object.publicMethod = function(){
13            privateVariable++;
14            return privateFunction();
15       };
16 
17       return object;
18 }();
bubuko.com,布布扣

 

JS单例设计模式,布布扣,bubuko.com

JS单例设计模式

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/missuu/p/3765368.html

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