设计模式(统计出来的差不多26种)
设计模式是我们在解决问题的时候针对特定问题给出的简介而优化的处理方案。单例模式、组合模式、观察者模式、装饰器模式、适配器模式、代理模式。
单例模式:
构造函数可以创造一个对象,也就是一个构造函数一生只能 new 出一个对象。每一次 new 出来的对象 属性/功能/方法完全一样时候,我们把他设计成单例模式。
使用场景:类创建起来,非常消耗内存和时间,要被经常创建。
例:前端 弹出框
后端 数据库连接
组合模式:就是把几个构造函数的启动方式组合在一起,统一调用
观察者模式:通常也被叫做发布-订阅模式或者消息模式
官方解释: 当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,解决了主体对象与观察者之间功能的耦合,即一个对象状态改变给其他对象通知的问题。
观察者模式就是我们自己实现一个 addEventListener 的功能只不过addEventListener 只有固定的一些事件,而且只能给 dom 元素绑定而我们自己写的可以随便绑定一个事件名称,自己选择触发时机而已。
书写代码:
我们要有一个观察者(这里抽象为一个对象 {})
需要有一个属性,存放消息的盒子(把你绑定的所有事件放在里面)
需要一个 on 方法,用于添加事件
需要一个 emit 方法,用于发布事件(触发)
需要一个 off 方法,把已经添加的方法取消
每个方法都需要接收两个参数,事件类型和事件处理函数,去用于添加、发布和取消。
即:const observer = {
message: {},
on: function () {},
emit: function () {},
off: function () {}
}
我们把它写成一个构造函数的形式
class Observer {
constructor () {
this.message = {}
}
on () {}
emit () {}
off () {}
}
添加观察者与关注微信公众号类似。
例如:
原文:https://www.cnblogs.com/52580587zl/p/13184099.html