JS进阶--设计模式

能干什么

  • 帮我们设计组织模块:通过设计模式,组织模块之间的组成结构
  • 帮我们设计沟通:设计模块间如何沟通
  • 提高代码质量:让代码具备可读性

设计模式的设计原则

  • 开闭原则:程序对扩展开放,对修改关闭;能够不用修改源码的去扩展功能
  • 单一职责原则:一个模块只做一件事情,工作越单一越好
  • 依赖倒置原则:上层模块不要依赖具体的下层模块,而依赖于抽象
  • 接口隔离原则:接口细化,功能单一,不要一个接口调用太多的方法;单一职责原则关注模块,接口隔离关注于接口
  • 迪米特法则:也叫最少知识原则,在两个模块产生沟通时,知道的越少越好;如中介者模式
  • 里氏替换原则:关注于继承,任何父类使用的地方,都可以使用子类去替换,在用子类去继承父类时,必须保证子类完全继承父类的任何属性和方法

设计模式的分类

创建型

  • 可以帮助我们优雅的创建对象
  1. 工厂模式–大量的创建对象
  2. 建造者模式–精细化组合对象
  3. 单例模式-- 全局只能有我一个,保证某个特定实例化对象只有一个
  4. 原型模式–JavaScript的灵魂,相当于原型链

结构型

  • 帮我们优雅的设计代码结构
  1. 外观模式–给你一个套餐
  2. 享元模式–共享来减少数量,减少对象/代码块的数量
  3. 适配器模式–用适配代替更改,在两个对象之间的接口/数据不适配的时候,不用更改这两个对象,可以自己写一段适配代码
  4. 桥接模式–独立出来,然后再对接过去;减少代码的耦合度
  5. 装饰者模式–更优雅的扩展需求

行为型

  • 模块之间行为的模式总结,帮我们组织模块行为
  1. 观察者模式–作为第三方转发;定义一个第三方,两个模块之间的沟通通过第三方去转发
  2. 职责链模式–像生产线一样组织模块
  3. 状态模式–用状态代替判断;有效的减少if-else,让对象根据不同状态展现不同的行为
  4. 命令模式–用命令去解耦;用命令去解除我们执行者和命令者之间的耦合
  5. 策略模式–算法工厂
  6. 迭代器模式–告别for循环:如forEach循环

技巧型

  • 帮我们优化代码的技巧
  1. 链模式–链式调用、链式编程
  2. 惰性模式–我要搞机器学习;在代码执行后记录代码的执行状态
  3. 委托模式–让别人代替你收快递
  4. 等待者模式–等你们都回来再吃饭;适用于多种异步操作,等异步操作都成功返回结果了 再进行下一步操作
  5. 数据访问模式–一个方便的数据管理器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊胡咧咧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值