码迷,mamicode.com
首页 > 其他好文 > 详细

04_单例模式

时间:2015-07-31 22:02:36      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:javascript   设计模式   

单例模式

 

/**
 * 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_单例模式

标签:javascript   设计模式   

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

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