A-A+

javascript设计模式之——单例模式/单体模式

2016年12月11日 JavaScript, 读书有得 暂无评论

只允许实例化一次的对象类,有时用一个对象来规划一个命名空间,有序管理对象上的属性与方法。

最常见的一种设计模式。jQuery。
命名空间来约束每个人定义的变量。
另外一个作用:
管理代码库的各个模块。可以创建自己的代码库。
管理静态变量:
静态变量 只能访问不能修改并且无创建后就可以使用。

// 原来的代码

function gId(id){

return document.getElementById(id);

}

function css(id,key,value) {

gId(id).style[key]=value;

}

function attr(id,key,value) {

gId()[key]=value;

}

// 改进一

var Cxq={

g:function (id) {

return document.getElementById(id);

},

css:function (id,key,value) {

g(id).style[key]=value;

// Cxq.g(id).style[key]=value;

}

}

// XX css方法用到了g方法

// 改进二

var Cxq={

g:function (id) {

return document.getElementById(id);

},

css:function (id,key,value) {

this.g(id).style[key]=value;

}

}

var Common=(function () {

// 私有变量 静态变量大写

var Common={

MAX_VALUE:22

}

return {

get:function (name) {

return Common[name]?Common[name]:null;

}

}

})();

var ainstance=Common.get("MAX_VALUE");

console.log(ainstance);//22

惰性创建:有时候对于单例对象需要延时创建。

// 惰性单例

var Lazy=(function () {

// 单例实例引用

var instance=null;

// 单例

function Single(){

// 定义私有属性和方法

return {

publicNethod:function(){},

publicProperty:'1.0'

}

}

// 获取单例对象接口

returen function(){

if(!_instance){

_instance=Single();

}

return _instance;

}

})();

 

 

给我留言

Copyright © 花未全开月未圆 保留所有权利.   Theme  Ality 海外

用户登录