javaScript设计模式
开放封闭原则:
对稳定的东西进行封装,将可能会变动的东西分离出来,增加功能或者改动的时候增加代码即可,无需改动代码。
1.放置挂钩
hook(待研究)
2.使用回调函数
把回调函数当做参数传入一个稳定和封闭的函数中,当回调函数被执行的时候,程序会因为回调函数的内部逻辑不同,而产生不同的结果。
ajax异步请求是不变的,获取数据后的下一步可能变化。
1.设计模式
1.1 是什么?
软件工程中,设计模式是对软件设计中普遍存在的各种问题所提出的解决方案。不同情况下,解决问题的方案。设计模式使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
1.2 有哪些?
1.2.1单例模式
一个类仅有一个实例,提供一个访问他的全局访问点。实现的方法为先判断实例存在否,如果存在则直接返回,如果不存在就创建了再返回,确保一个类只有一个实例对象。
1.2.2工厂模式
工厂模式通常分成3个角色:
工厂角色-负责实现创建所有实例的内部逻辑
抽象产品角色-是所创建的所有对象的父类,负责描述所有实例所共有的公共接口
具体产品角色-是创建目标,所有创建的对象都充当这个角色的某个具体类的实例
1.2.3策略模式
定义一系列的算法,把他们一个个封装起来,并且使他们可以相互替换,至少分两部分:
策略类(可变),策略类封装了具体的算法,并负责具体的计算过程
环境类(不变),接受客户的请求,随后将请求委托给某一个策略类
1.2.4代理模式
为对象提供一个代用品或占位符,以便控制对它的访问。
例如:图片懒加载
1.2.5中介者模式
通过一个中介者对象,其他所有的相关对象都通过该中介者对象来通信,而不是相互引用,当其中一个对象发生改变时,只需要通知中介者对象即可
可以接触对象与对象直接的紧耦合关系
1.2.6装饰者模式
在不改变对象自身的基础上,在程序运行期间给对象动态地添加方法
在原有方法上挂载其他方法来满足现有需求