单例模式最初的定义出现于《设计模式》(艾迪生维斯理 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”
什么是单例模式
单例模式就是只能创建一个类的实例对象,并提供一个可以访问它的全局访问点。
实例控制,确保只有一个实例,防止创建多个实例副本。
只有一个实例的过程,可以灵活控制实例化过程。
单例模式的缺点
每次创建都需要判断实例是否创建的开销,可以使用静态初始化,又会导致一个新的问题,创建的实例没有被用到。
单例模式的例子
例如我们现在需要一个全局计数器,我们可以这样创建,这里使用静态初始化。
不能修改已有属性的可枚举性,可配置性,可写性。
Object.freeze() 可以提高性能,如果你有一个对象,里面的内容特别特别多,而且都是一些静态数据,你确保不会修改它们,那你其实可以用 Object.freeze() 冻结起来,这样可以让性能大幅度提升,提升的效果随着数据量的递增而递增。