首页 > 其他 > 详细

04_单例模式

时间:2015-07-31 21:59:35      阅读:245      评论:0      收藏:0      [点我收藏+]

单例模式

 

/**
 * 1.最简单的单体模式就是一个对象字面量,用于将一组属性和方法组织在一起。
 */
var Application = {
    version1.0,
    getAppInfofunction () {
        return "app";
    }
};


/**
 * 2. 为了能在单例对象中创建真正的私有变量,可以使用闭包。
 * 由于单例对象只会存在一份,因此可以忽略私有属性占有的内存空间问题。
 */
var Application2 = (function () {
    //私有属性
    var version 1.0;
    var author "test";

    //私有方法
    function privateMethod() {
        //......
    }

    /**
     * 返回的对象包含的属性和方法都是公有的,可以在外部调用的!
     */
    return {
        getVersionNumberfunction () {
            return version;
        },
        getAuthorfunction () {
            return author;
        }

    }
})();


/**
 * 3. 懒加载的单例对象(不常用,只适用于那些实例化成本很高,具有大量数据需要加载的单例对象)
 * 一般的单体最好还是立即实例化!
 */
var Application3 = (function () {
    var instance;
    //将上面例子中单体的代码移到一个构造化函数中来
    function constructor() {
        //私有属性
        var version 1.0;
        var author "test";
        //私有方法
        function privateMethod() {
            //......
        }
        /**
         * 返回的对象包含的属性和方法都是公有的,可以在外部调用的!
         */
        return {
            getVersionNumberfunction () {
                return version;
            },
            getAuthorfunction () {
                return author;
            }
        }
    }

    return {
        getInstancefunction () {
            if (!instance) {
                instance = constructor();
            }
            return instance;
        }
    }
})();

alert(Application2.getVersionNumber());  //调用立即实例化的单例对象
alert(Application3.getInstance().getAuthor());//调用懒加载的单体对象

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

04_单例模式

原文:http://blog.csdn.net/yijianbo_/article/details/47175209

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!