Skip to content

Latest commit

 

History

History
48 lines (46 loc) · 967 Bytes

File metadata and controls

48 lines (46 loc) · 967 Bytes

六. 单例模式

单例模式又称为单体模式,其实就是只允许实例化一个对象,有时我们也可以用一个对象类规划命名空间,仅仅有条的管理对象的属性和方法。

//命名空间管理
var obj = {
  g: function(id) {
    return document.getElementById(id);
  },
  css: function(id, key, value) {
    this.g(id).style[key] = value;
  }
  //...
};
//模块分明
var A = {
  Util: {
    util_method1: function() {},
    util_method2: function() {}
  },
  Tool: {
    tool_method1: function() {},
    tool_method2: function() {}
  }
  //...
};
//惰性单例
var LazySingle = (function() {
  //单例实例引用
  var _instance = null;
  //单例
  function Single() {
    return {
      publicMethod: function() {},
      publicProperty: '1.0'
    };
  }
  //获取单例接口
  return function() {
    if (!_instance) {
      _instance = Single();
    }
    //返回单例
    return _instance;
  };
})();