又被称为单体模式,只允许实例化一次的对象类。有时也可以用一个对象来规划一个命名空间,井井有条地管理对象上的属性和方法。
单例模式应该是JavaScript中最常见的一种设计模式了,经常为我们提供一个命名空间,来防止不同的人命名变量的冲突,还可以用它来创建一个小型的代码库。

var MyTools = {elem: {getElement: function() {},setElement: function() {}},arr: {getArrLength: function() {},updateArr: function() {}},cookie: {getCookie: function() {},removeCookie: function() {}}...
}//调用
MyTools.cookie.getCookie();

使用一个变量来标志当前是否已经为某个类创建过对象,如果创建了,则在下一次获取该类的实例时,直接返回之前创建的对象,否则就创建一个对象。

export function getPermissionObj() {if (!permissionObj){permissionObj = new Permission()}return permissionObj;
}

class Singleton {constructor(name) {this.name = namethis.instance = null}getName() {alert(this.name)}static getInstance(name) {if (!this.instance) {this.instance = new Singleton(name)}return this.instance}
}const instanceA = Singleton.getInstance('seven1')
const instanceB = Singleton.getInstance('seven2')console.log(instanceA, instanceB)

转载于:https://www.cnblogs.com/camille666/p/design_pattern_create_singledon.html

设计模式之创建型单例模式相关推荐

  1. Java设计模式之创建型:单例模式

    一.什么是单例模式: 单例模式可以确保系统中某个类只有一个实例,该类自行实例化并向整个系统提供这个实例的公共访问点,除了该公共访问点,不能通过其他途径访问该实例.单例模式的优点在于: 系统中只存在一个 ...

  2. 设计模式(21):创建型-单例模式(Singleton)

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

  3. 设计模式(java版)——创建型——单例模式

    项目源码已提交github:https://github.com/ckl001/designPattem_java 创建型 单例模式 1.饿汉模式 2.懒汉模式 3.内部类模式 4.枚举模式 破坏单例 ...

  4. Java设计模式之创建型:原型模式

    一.什么是原型模式: 原型模式主要用于对象的创建,使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.UML类图如下: 原型模式的核心是就是原型类 Prototype,Prototype ...

  5. Java设计模式之创建型:建造者模式

    一.什么是建造者模式: 建造者模式将复杂产品的创建步骤分解在在不同的方法中,使得创建过程更加清晰,从而更精确控制复杂对象的产生过程:通过隔离复杂对象的构建与使用,也就是将产品的创建与产品本身分离开来, ...

  6. Java学习--设计模式之创建型模式

    一.简介 创建型模式:这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象.这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活.创建型模式包括:工 ...

  7. php 长剑设计模式,PHP设计模式(创建型)

    前言 随着编程项目经验的增加,从服务于业务逻辑到针对项目的全局设计.认识到设计模式在开发过程中 \的重要性,遵循 S.O.L.I.D 五大基准原则.它拓展了我的视野,让代码更加灵活,看起来更加富有美感 ...

  8. 备战面试日记(3.2) - (设计模式.23种设计模式之创建型模式)

    本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.6 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...

  9. 设计模式之创建型模式(工厂、原型、建造者)

    文章目录 创建型模式 2.1 工厂设计模式 2.1.1 简单工厂模式 2.1.2 工厂方法模式 2.1.3 抽象工厂 2.1.4 工厂模式总结 2.1.5 Spring中的工厂模式 2.1.6 工作中 ...

最新文章

  1. Blender创作你自己的动画短片学习教程
  2. 用JSP+JDBC开发Web程序
  3. python 如何将虚拟环境的项目的所有.py文件的import导包汇总到requirements.txt文件 (pipreqs)
  4. 【时间序列】Github最受欢迎的10大深度学习时间序列项目!
  5. Hive分区、分桶操作及其比较(转自:http://blog.csdn.net/epitomizelu/article/details/41911657)
  6. 学成在线--5.CMS页面管理开发(修改页面)
  7. K8S+KubeSphere之Helm安装
  8. 80后的十三种最深寂寞
  9. mysql hibernate 乱码_mysql hibernate 乱码
  10. MyBatis(九)------MyBatis的优缺点知多少
  11. 分布式电源选址定容与优化配置MATLAB程序基于多目标粒子群算法
  12. 【Linux中基于docker安装oracle及Oracle密码过期修改】
  13. 漫游书海-我的阅读简史
  14. PSCAD建立高压直流输电线路雷击模型--相关建模问题
  15. 微信公众号用户标签php,C#微信开发之微信公众号标签管理功能
  16. 智能车学习----最小二乘法求拟合曲线(中线)的斜率
  17. 最新计算机专业毕业设计论文选题源码演示录像下载(开题报告任务书PPT毕业答辩模板 jsp70786体育馆售票门票系统 双数据库 mysql版
  18. 微信小程序支付 退款 订单查询 退款查询
  19. 如何表格合并快速简单?
  20. 问题 F: 猜球球 XUPT2019 哈夫曼树

热门文章

  1. mongodb性能 mysql_MySQL和MongoDB的性能测试
  2. 用数据说话,基金经理一年到底能挣多少钱?
  3. python中pandas有误_python-pandas to_sql方法给出日期列错误
  4. python 百度搜索结果_Python洗涤百度搜索结果
  5. pythondjango项目集成_Django集成celery实战小项目
  6. java 快速从树节点找到数据_14期每日分享Java程序员分享超全哈希相关的知识
  7. 数据结构 2-3-4 静态链表
  8. Python界面程序实例:按钮漂移,用Python小套路来撩女神
  9. Autograd看这一篇就够了!
  10. Pytorch——Window上Pytorch的安装教程