JS中一个最基础,但是也是业务逻辑开发中常用到的设计思想:“单例设计模式”(框架开发模式下无需用单例处理)最早的模块开发思想(AMD/CMD/CommonJS/ES6Module)
举例:
A开发天气版块
weatherModule除了是全局变量、模块名称、对象名,更专业的叫法是“命名空间”,这样单例设计模式就是把描述相同事务(相同版块)中的属性和方法,归拢到相同的命名空间下,实现分组管理(既可以避免全局变量污染、也可以实现模块之间的相互调用)
let weatherModule = (function () {
let index = 0;
function queryData() {}
function getElement() {}
// 想让闭包之外的东西调用方法,可以基于WINDOW.XXX把其暴露到全局上(如果向全局暴露的东西过多,也会存在冲突的问题)
// window.getElement = getElement;
// 建议使用RETURN的方式
return {
// getElement: getElement
getElement
};
})();
weatherModule.getElement();
B开发资讯版块
let informationModule = (function () {
let index = 0;
function queryData() {}
function bindHTML() {}
function handleEvent() {}
// ......
return {
// init:function(){}
init() {
// 在单例设计模式的基础上,增加一个命令模式,init作为当前模块业务的入口,以后只需要执行informationModule.init(),我们在init中根据业务需求,把编写的方法按照顺序依次调用执行即可
queryData();
bindHTML();
handleEvent();
}
};
})();
informationModule.init(); */