单体对象都是在脚本加载时被创建出来。如下代码:
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;
}
};
})();
分享到:
相关推荐
javascript设计模式之单体模式学习笔记.docx
JavaScript设计模式的作用——提高代码的重用性,可读性,使代码更容易的维护和扩展。
JavaScript设计模式.pdf
《JavaScript设计模式》是JavaScript设计模式的学习指南。全书分为14章。首先介绍了什么是模式、模式的结构、类别...通过阅读本书,他们将能够提高对设计模式的认识,并学会如何将设计模式应用到JavaScript编程语言中。
JavaScript设计模式与开发实践.pdf
JavaScript 设计模式(高清扫描版本)- 张容铭
javascript高级-javascript设计模式。视频文件(无加密可在线观看)
在吃透了前面所说的书之后,接下来两本书的顺序已经无关紧要了,《JavaScript DOM高级程序设计》(注意和《JavaScript 高级程序设计》相区别)和《JavaScript设计模式》,这两本都是重量级的书,能让你的JS技术上一...
作者针对常见的开发任务,从YUI等实战代码中取材,提供了专家级的解决方案,不仅透彻剖析了JavaScript扣的面向对象编程,而且深入探讨了如何用JavaScript实现以前只在服务器端应用的设计模式,如何根据实际场景选择...
单体模式 工厂模式 迭代器模式 装饰者模式 策略模式 外观模式 代理模式 中介者模式 观察者模式 小结 第8章 DOM和浏览器模式 关注分离 DOM脚本 事件 长期运行脚本 远程脚本 配置...
JavaScript设计模式+JavaScript模式+JavaScript异步编程,合计三本pdf文件,5分超值哦。
Javascript高级编程学习笔记27——BOM1window对象1.docx
本书在尊重《设计模式》原意的同时,针对JavaScript语言特性全面介绍了更适合JavaScript程序员的了16个常用的设计模式,讲解了JavaScript面向对象和函数式编程方面的基础知识,介绍了面向对象的设计原则及其在设计...
第一部分给出了实现具体设计模式所需要的面向对象特性的基础知识,主要包括接口、封装和信息隐藏、继承、单体模式等内容。第二部分则专注于各种具体的设计模式及其在JavaScript语言中的应用,主要介绍了工厂模式、...
javascript设计模式之模块模式学习笔记.docx
javascript设计模式之策略模式学习笔记.docx
外文翻译:学用JavaScript设计模式
为了帮助大家快速和较好地理解JavaScript设计模式中的单例模式,本文对JavaScript的单例模式进行了分析并进行简易的代码演示,希望本文能够给有需要的人带来一点小小的帮助。
Javascript 设计模式 很经典 第一本 Javascript 设计模式 很经典 第一本 Javascript 设计模式 很经典 第一本