你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Java专栏
《Javascript设计模式》读书笔记——单体模式
 

单体对象都是在脚本加载时被创建出来。如下代码:

var Singleton = (function() { // 普通的单体模式
    // code here

    return {

    };
})();
而对于资源密集型的或配置开销甚大的单体,也许更合理的做法是将其实例化推迟到需要使用它的时候。这种技术被称为“惰性加载(lazyloading)”,它最常用于那些必须加载大量数据的单体。而那些被用作命名空间,特定网页专用代码包装器或组织相关实用方法的工具的单体最好立即实例化。
这种惰性加载单体的特别之处在于,对它们的访问必须借助于一个静态方法。应该这样调用其方法:Singleton.getInstance().methodName(),而不是这样调用:Singleton.methodName()。getInstance方法会检查该单体是否已经被实例化。如果还没有,那么它将创建并返回其实例。若单体已经被实例化过,那么它将返回现有实例。

对比普通的单体模式和惰性加载的单体模式:

var Singleton = (function() { // 惰性加载的单体模式
    var uniqueInstance = null;

    function constructor() {
        // code here

        return {

        };
    }

    return {
        getInstance : function() {
            if(!uniqueInstance) {
                uniqueInstance = constructor();
            }
            return uniqueInstance;
        }
    };
})();

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089