单例

单例是一个全局变量,使用单例可以更好的控制全局变量,还可以利用分支技术来封装浏览器之间的差异。网页中使用全局变量由于可以被重写风险很大。所以使用单例会更好的控制全局变量。

懒加载

单例模式多数都是在加载脚本的时候被创建出来。不过对于一些使用方式单例适合在用到的时候被加载,所以需要一个可以懒加载的单例。

分支

是一种区分运行环境差异的技术,更加有效的针对加载的环境来定制代码,达到更好的灵活性。

代码

var os = require("os");
Singleton = (function () {var uniqueInstance; // 单例实体constructor = function () { // 单例初始化return function Singleton () {var count = 10;function initCount(){count = 10;}this.getCount = function () {return count;}this.setCount = function (value) {count = value;};this.init=function(){initCount();}};}();return {getInstance: function () {if (!uniqueInstance) { // 判断是否初始化过uniqueInstance = new constructor();}return  (os.type()==='Windows_NT')?uniqueInstance:undefined;//单例分支使单例有更高的兼容性}}
})();
var S=Singleton .getInstance();//懒加载,在这里开始加载和创建实例。
console.log(S.count);
console.log(S.getCount());
S.setCount(550);
console.log(S.getCount());
//S.initCount();
S.init();
console.log(S.getCount());

总结

单例主要在于代码的整洁性,是全局变量变得可控,使用懒加载可以减少不必要的内存消耗。分支提高不用环境的兼容性,只需判断一次环境而不用在每次使用都判断环境。

JS 设计模式 四(单例)相关推荐

  1. 详略。。设计模式1——单例。。。。studying

    设计模式1--单例 解决:保证了一个类在内存中仅仅能有一个对象. 怎么做才干保证这个对象是唯一的呢? 思路: 1.假设其它程序可以任意用new创建该类对象,那么就无法控制个数.因此,不让其它程序用ne ...

  2. java软件设计模式只单例设计模式

    概述 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计 ...

  3. 游戏设计模式——C++单例类

    前言: 本文将探讨单例类设计模式,单例类的懒汉模式/饿汉模式,单例类的多线程安全性,最后将利用C++模板减少单例类代码量. 本文假设有一个Manager管理类,并以此为探究单例类的设计模式. 懒汉模式 ...

  4. 23种设计模式:单例设计模式(饿汉式 VS 懒汉式)

    23种设计模式:单例设计模式(饿汉式 VS 懒汉式) 每博一文案 世事浮沉,有太多的责任需要我们担当,生活中总有些挫折和磨难,让我们觉得快要杠不住了. 但当我们咬牙坚持过那段难熬的时光后,发现并没有想 ...

  5. java单例设计模式懒汉_Java设计模式之单例设计模式(懒汉、饿汉)

    [toc] Java设计模式之单例设计模式(懒汉.饿汉) 相信面试过的初中级Java开发的朋友可能都有遇到过单例设计模式的笔试题吧,如果之前没有背下来或者不理解,可以看看下面这篇文章,应该足够应付笔试 ...

  6. 设计模式之单例设计模式

    1 设计模式(Design pattern) 代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多软件开发人 ...

  7. C++常用设计模式:单例设计模式(饿汉式、懒汉式)

    一.单例模式的设计套路: 思考:如何绕过常规的构造函数,提供一种机制来保证一个类只有一个实例. 1. 铺垫:静态成员函数特性的总结 使用static关键字修饰类成员函数时,就是把这个成员函数升级成了全 ...

  8. 单例设计模式介绍||单例设计模式八种方式——1) 饿汉式(静态常量) 2) 饿汉式(静态代码块) 3) 懒汉式(线程不安全) 4) 懒汉式(线程安全,同步方法)

    单例模式 单例设计模式介绍 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法). 比如Hibernate的 ...

  9. 设计模式之单例设计模式(懒汉式)

    package july.star.thread22; /*** Teacher* 饿汉式:类一加载就加载* 懒汉式:需要时才加载* 面试题:单例模式的思想是什么,请用代码体现.* 开发:饿汉式(不会 ...

最新文章

  1. Android Wi-Fi基本操作
  2. 139邮箱发送邮件时候,zmail.server(from_mail,pwd) 该pwd可以不用是授权码,是密码就可以
  3. 013_CSS兄弟选择器
  4. ASP.NET MVC Tip #31: 给 Master Pages 和 User Controls 传递数据
  5. WebSocket 实现 Web 端即时通信
  6. 放弃Windows,用国产开源替换政府办公系统!这个国家做到了
  7. TCP协议——三次握手与四次关闭
  8. MySQL useSSS_Mysql 常用操作记录
  9. form的enctype和action
  10. Flutter设置允许HTTP访问
  11. Struts,Hibernate,Spring经典面试题收藏(转)
  12. 线搜索中有最速下降法、牛顿法、拟牛顿法、共轭梯度法汇总
  13. STM32学习心得二十五:光敏传感器原理及实验
  14. 周礼键君:中国福建省建瓯市之《闽郡八音字典》
  15. Python爬取wfxnews 小说网站,实现批量下载小说
  16. IBDP1 经济好学吗?学习建议分享
  17. 计算机专业班级网站,班级网站毕业论文.doc
  18. bootstrap table 超链接的添加 a标签
  19. 首个中文开源扩散模型!中文AI艺术时代即将开启(IDEA封神榜团队)
  20. ios xcode如何修改应用的名称

热门文章

  1. 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)
  2. BZOJ 4665: 小w的喜糖
  3. 从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储+服务+抽象接口模式...
  4. Supervisor进程管理开机自启
  5. 对手机图标整理事件总结
  6. 单点登录认证方案思路,求好思路回复
  7. 关于target=标签
  8. 解释型语言与编译型语言的区别
  9. Windows下Memcached的安装与配置
  10. 关于Session_End()运行机制的一些细节!