保证一个类仅有一个实例,并提供一个访问它的全局访问点
只保证一个实例的存在,减少不必要的内存开销,和命名的冲突
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;}
总结:
优点
- 只存在一个实体、所有对象访问的都是一个实例
- 避免共享资源的多重占用,需要频繁创建和销毁的对象时单例模式无疑可以提高系统的性能
缺点
- 不适合变化的对象、数据的初始化
- 扩展性不好
- 单例类的职责过重,在一定程度上违背了“单一职责原则”
单例模式在于只存在一个类的实例、只会实例化一次、并且把一些方法都独立成命名空间的形式、这样好处在于方法名称不会和别的冲突!
