localstorage 设置初始值,下面的静态方法就不用判断了吧

来源:4-4 【单件设计模式应用】构建单件 localStorage 类(真实应用场景)-2

假装很会写代码

2021-08-25

static localstorage: MyLocalStorage = new MyLocalStorage() 设置初始值,下面的静态方法就不用判断了,这样写法是不是更简洁一些?

写回答

1回答

keviny79

2021-08-25

需要更深入来理解这个问题,需要理解的更完全些

import { Collection } from './Collection'// Collection是单件模式类文件

Collection.test();

//Collection.getInstance();


4-11会讲解第二种实现方式的加载时机, 我这里先总结下两种方式各自的利和弊 ,

先说第一种方式:

 1.第一种是不访问方法不创建对象【需要时才创建,也叫延迟创建按】,

好处是:虽然这是单件模式,但如果 10个类 有3个类只需要调用了

类中的其他静态方法并不需要对象,请注意,这是有可能的,

那么这3次使用静态方法时并不会 创建对象,因为是延迟创建。 

另外一个好处就是可以在方法里增加一些其他的语句,方便测试或调试时使用

那怎样做到这一点呢?很简单

所以可以只导出一个类,然后在需要使用的位置来调用getInstance()来获取单件对象


 2.再来说第二种方式

第二种方式时属于饿汉式,不管你用不用单件对象,我都给你创建,

因为是静态属性指向的对象,所以即使你像第一种方式一样只导入一个类,它也会创建对象。

所以了解了这个特点,我们知道它的优点是: 当我们整个项目绝大多数 

只需要用一个单件对象时,这种方案自然首选,


0
0

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程