写在前面:js设计模式系列是阅读《JavaScript设计模式与开发实践》过程中做的笔记
单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的window对象等。在JavaScript开发中,单例模式的用途同样非常广泛。试想一下,当我们单击登录按钮的时候,页面中会出现一个登录浮窗,而这个登录浮窗是唯一的,无论单击多少次登录按钮,这个浮窗都只会被创建一次,那么这个登录浮窗就适合用单例模式来创建。
实现一个标准的单例模式:
用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象
eg:
1 | class Singleton { |
惰性单例:
惰性单例指的是在需要的时候才创建对象实例。还是拿登录浮窗的例子说,惰性单例就是当点击登录按钮时才创建登录浮窗,并且只创建一个。