保证一个类仅有一个实例,并提供一个访问它的全局访问点
只保证一个实例的存在,减少不必要的内存开销,和命名的冲突
class Axios{
constructor(){}
get({url, params}){
return new Promise( resolve =>{
resolve('请求成功!')
})
}
post({url, params}){
return new Promise( resolve =>{
resolve('请求成功!')
})
}
}
let instance = null;
export default function AxiosInstance(){
if(!instance){
instance = new Axios()
}
return instance;
}
总结:
优点
- 只存在一个实体、所有对象访问的都是一个实例
- 避免共享资源的多重占用,需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能
缺点
- 不适合变化的对象、数据的初始化
- 扩展性不好
- 单例类的职责过重,在一定程度上违背了“单一职责原则”
单例模式在于只存在一个类的实例、只会实例化一次、并且把一些方法都独立成命名空间的形式、这样好处在于方法名称不会和别的冲突!