javascript设计模式-单例模式

Posted 汪培

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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设计模式-单例模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之单例模式

从ES6重新认识JavaScript设计模式: 单例模式

[转] JavaScript 单例模式

[JavaScript设计模式]惰性单例模式

JavaScript 设计模式

JavaScript单例模式