单例设计模式:这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
- 其实就是创建一个对象。
- 每一个对象都是Object的单独实例,基于每一个实例对象来管理自己的属性和方法,实现分组的效果
作用:利用对象「单独堆内存」来进行分组管理,避免全局变量污染
let AModule = (function () {
let n = 10;
const query = () => {};
const sum = () => {};
// 暴露API
return {
query
};
})();
let BModule = (function () {
let n = 20;
const sum = () => {};
AModule.query();
return {
};
})();
- 单例设计模式需要自己写代码来管理;并且如果每一个模块是一个单独的JS,最后导入JS的时候,我们需要非常认真的去管理一下先后导入的顺序「按照模块之间的依赖去处理」
JS中管理单例模式的方法
- AMD:按需导入,有效管理模块之间的依赖「require.js」(已弃用)
- require & define
- 需要依赖三方插件;依赖前置;
- CommonJS规范「只能在Node环境下运行;随用随导入,无需依赖前置」
- 导入:require
- 导出:module.exports
- ECMA官方模块规范:ES6Module
- 导出:export & export default
- 导入:import
- 依赖前置;浏览器可以直接支持;NodeJS环境是不支持的;