蓝盟IT小贴士,来喽!
单实例模式非常常用,非常重要。 将单实例模式应用于程序开发设计,可以减少重复代码,提高程序效率。 单实例模式还可以使数据流更清晰,更便于维护和管理。
一、什么是单实例模式
“单实例模式”(Singleton Pattern )可确保类只有一个实例,并提供用于访问该实例的全局接入点。
是不是瞬间想到了JavaScript的全局变量window、本地存储? 它们在全球提供接入点,只有一个实例。
虽然在一些多线程编程语言中,单实例模式会导致同步锁定问题,但由于JavaScript是以单线程运行的,因此可以暂时忽略线程安全问题。
和单身狗很像,但是在程序被放弃之前,整个程序中找不到第二个和它匹配的
二、实现单模
单实例模式从其定义可以看出,是一种比较简单的设计模式,其核心思想是保证唯一的实例。 因此,如下所示,简单地实现一个皮层功能单即时级,并逐步完善。
2.1口罩单例类
因为在现在的工作环境中基于ES6以上的开发模式,所以我们直接带入class思想来实现。 如果有需要了解基础内容的学生,推荐《这些JS设计模式的基础知识点你都会了吗?》。
遮罩功能:
层次最大,复盖浏览器的可视区域
阻止用户的所有单击事件
透明掩模
这种从一开始就制作实例的方式称为“饿汉式单例”,必要时制作实例的方式称为“懒汉式单例”。
因此,“空腹汉式单例”的缺点是在类加载时进行初始化,会浪费内存。
但是,在现代,如果没有使用此组件,就不会利用web包等软件包构建工具对该组件进行打包。 另外,据说在React、Vue框架的按需加载组件的设计实现下,组件也按需经由网络下载、缓存分包的组件文件,因此浪费内存因此,在JavaScript中几乎分不清懒人和饿汉。
文/上海蓝盟 IT外包专家