在日常的工作中,养成良好的编程习惯对于项目的长久可维护起到了不可忽视的作用
如果没有任何的规则,一般一个项目在经过五六个人的手后就会变的面目全非
所幸的是,从javascript创建至今,一直有着各种规范冒出。
打工人,打工魂,打工都是人上人
每天深入了解一下设计模式,提高自己的代码编程水平,成为人上人
单例模式
什么是单例模式?
一个类只能有一个实例,且该类能自行创建这个实例的一种模式
举个例子:
一家公司的ceo,只能有一位
class Ceo{
constructor(companyName, name) {
this.companyName = companyName
this.name = name
}
static getInstance(companyName, name){
if (!this.instance) {
this.instance = new Ceo(companyName, name);
}
return this.instance
}
}
const ceo = Ceo.getInstance('智联招聘','小郭')
const ceo2 = Ceo.getInstance('智联招聘','小明')
console.log(ceo === ceo2) // true
这时候,不管我是打印ceo.name还是ceo2.name,得到的结果都是小郭
单例模式有什么特点?
- 单例模式只有一个实例对象
- 实例对象由此单例类自行创建
- 对外提供一个访问该单例的全局访问点【对外提供服务】
单例模式有什么优点?
- 可以保证内存中只有一个实例,减少内存的开销
- 避免对资源的多重占用
单例模式有什么缺点?
- 不适于动态扩展,如果要拓展,需要修改代码,违反了开闭原则
- 单例模式和单一职责想冲突
单一职责:一个类只实现一个逻辑;单例模式:业务 + '我要单例'
单例模式的使用场景
- Vuex,状态全局管理
- 购物车【电商】
- 登陆/注册
- 引入第三方库【可能存在多次重复引入的情况】
- 需要频繁执行的动作
- 链接数据库
- .......
网友评论