美文网首页
单例模式

单例模式

作者: niumew | 来源:发表于2016-04-12 21:26 被阅读0次

    用一个对象规划一个命名空间,合理的管理对象上的属性与方法

    命名空间

    var niu = {
        g : function(id) {
            return document.getElementById(id);
        },
        css : function() {
            this.g(id).style[...] = ...;
        },
        ...
    }
    

    基于命名空间,创建一个模块分明的小型代码库

    var A = {
        Util : {
            util_method1 : function() {},
            util_method2 : function() {}
        },
        Tool : {
            tool_method1 : function() {},
            tool_method2 : function() {}
        },
        Ajax : {
            get() {},
            post() {}
        }
    }
    
    A.Util.util_method1();
    A.Tool.tool_method1();
    A.Aja.get();
    

    无法修改的静态变量

    var Conf = (function() {
        var conf = {
            MAX_NUM : 1000,
            MIN_NUM : 1,
            COUNT : 100
        }
    
        return {
            get: function(name) {
                return conf[name] ? conf[name] : null;
            }
        }
    })();
    
    // 调用静态变量
    var count = Conf.get('COUNT');
    console.log(count);
    

    惰性单例

    var LazySingle = (function() {
        var _instance = null;
        function Single() {
            return {
                publicMethod : function()  {},
                publicProperty : '1.0'
            }
        }
        return function() {
            if (!_instance) {
                _instance = Single();
            }
            return _instance;
        }
    })();
    
    // 测试
    console.log(LazySingle().publicProperty);
    

    相关文章

      网友评论

          本文标题:单例模式

          本文链接:https://www.haomeiwen.com/subject/mqjwlttx.html