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

JavaScript中的设计模式:单例模式

时间:2015-11-23 18:35:45      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

定义

单例模式就是一个类只能实例化一个对象,并且提供了一个访问它的全局访问点。

一般在实现登陆框,或者一个全局的控制器都会用到单例模式。现实中有window对象,线程池,全局缓存等。

简单实现

var Person = function(name){
    this.name = name;
    this.instance = null;
};
Person.getInstance = function(name){
    if(!this.instance){
        this.instance = new Person(name);
    }
    return this.instance;
}

 种类

单例模式的实现由很多种方法,他们也有不同的作用。

1.用代理实现的单例

有时候,如果想让一个类既可以通过代理创建一个实例,又可以使用普通的方法new很多实例,这种情况就会用到代理。

var Person = function(name){
    this.name = name;
};
var CreatePerson = (function(){
    var instance;
    return function(name){
        if(!instance){
            return new Person(name);
        }
        return instance;
    }
});

 上面代码中,如果我们要创建一个实例,就用createPerson来创建,如果像普通对象一样,就用new创建。

2.惰性单例

其实开始介绍的简单单例模式即是惰性单例,也就是说,这个实例在需要的时候才会创建。而不是一开始就创建。

JavaScript中的设计模式:单例模式

标签:

原文地址:http://www.cnblogs.com/bdbk/p/4988891.html

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