JS中常用的设计模式
高级单例模式 构造函数模式
学习设计模式有什么作用?
增加编程思想 提高编程思想 方便团队之间的合作 低耦合 高内聚 代码复用性提高 模块明确
开发层次
开发效率高 利于团队协作
维护层次
有利于代码的升级改版 逻辑清晰,代码严谨,利于后期的维护
通用
我们依托设计模式可以实现组件化模块化 插件化 框架化 以及一些常用类库的编写
插件 组件 类库 框架的区别 类库:
提供真实项目中常用的方法(兼容处理,细节优化),方便我们开发【jQuery】【Zepto】
插件
把项目中的某一部分进行插件封装(是具备具体的义务逻辑的,更加有针对性),以后再有类似的需求,直接导入插件,相关逻辑代码不需要再写了【jQuery.drag.js jQuery.dialog.js jQuery.validate.js echarts统计图插件 datepicker日历插件 swiper插件】
组件
一般都是把JS封装,组件不仅封装了JS部分,而且把css部分也封装,以后再使用的时候,我们直接文档引入CSS,搭建对应的结构【swiper组件 bootstarp组件】
框架
不仅仅提供了很多的方法,还支持一些插件的扩展(可以把一些插件集成到框架中运行)提供了优秀的设计思想
JS常用的设计模式
单例设计模式,构造原型设计模式 发布订阅设计模式 promise设计模式
单例设计模式
//=>单例模式:把当前实现这个模块的所有属性和方法汇总再同一个命名空间下(分组作用:避免了全局变量的污染)
//=>真实项目中,我们把项目划分为各大板块,把实现同一个板块的方法放在一个独立的命名空间下,方便开发
构造原型模式
最贴近OOP面向对象编程思想的 以后真实项目中,不管封装插件 类库 基本都是基于构造原型模式而玩的
promise设计模式
解决AJAX异步请求层次嵌套的问题 它是小型设计问题,为了解决层级嵌套问题的,我们也经常嵌套到其它的设计模式中
发布订阅模式 俗称观察者模式
不同于单例和构造,发布订阅是小规模的设计模式,应用到具体的需求中:凡是当到达某个条件之后要执行N多方法,我们都可以依托于发布订阅模式管理和规划我们的代码 我们经常把发布订阅模式嵌套到其它设计模式当中
实现思路和核心原理: 1.先创建一个计划表(容器) 2.后期需要做什么事情我们都依次把需要处理的事情增加到计划表当中 3.当符合某个条件,我们只需要通知表中的方法按照顺序依次执行即可
jQuery中的发布订阅
jQ中提供了实现发布订阅设计模式的方法
let $plan=$.callBack();//创建一个计划表
let fn=function(n,m){
}
$plan.add(fn);
$plan.fire(100,200);