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

javascript设计模式-单例模式

时间:2017-05-25 23:26:03      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:通过   span   变量   命名空间   特权   etag   name   func   log   

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

 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设计模式-单例模式

标签:通过   span   变量   命名空间   特权   etag   name   func   log   

原文地址:http://www.cnblogs.com/aiyunyun/p/6906291.html

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