首页 > 代码库 > javascript设计模式-单例模式

javascript设计模式-单例模式

单例模式,是创建型设计模式的一种,又被称为单体模式,是只允许实例化一次的对象类。有时也用来规划一个命名空间。

 1 var Util = {
 2     getName: function () {
 3         console.log(‘wp‘)
 4     },
 5     getAge: function () {
 6         console.log(25)
 7     },
 8     getAll: function () {
 9         this.getName();
10         this.getAge();
11     }
12 }
13 Wang.getAll()

除了可以用来定义命名空间外,还可以管理代码库的各个模块。

例:

 1 var Util = {
 2     Tool: {
 3         tool1: function () {
 4             ...
 5         },
 6         too2: function () {
 7             ...
 8         }
 9     },
10     Ajax: {
11         get: function () {
12             ...
13         },
14         post: function () {
15             ...
16         }
17     },
18     Animate: {
19         move: function () {
20             ...
21         },
22         rotate: function () {
23             ...
24         }
25     }
26 }
27 Util.Tool.tool1();

例外,使用单例模式,还可以设置无法修改的静态变量

var Conf = (function () {
    var conf = {
        CONF_A: 100,
        CONF_B: 200,
        CONF_C: 300
    }
    return {
        get: function (name) {
            return conf[name] ? conf[name] : null
        }
    }
})();
var conf_a = Conf.get(‘CONF_A‘);
console.log(conf_a);  // 100

说明:因为将静态变量定义在函数对象里,而函数内部只提供了get方法,因此只能在外部通过特权方法访问到这些静态变量,但是无法修改这些静态变量

 

javascript设计模式-单例模式