设计模式

设计模式

主题

  将不变的部分和变化的部分隔开

原则

  • 单一职责原则(SRP)
    • 一个对象(方法)只做一件事情 => 应该只有一个原因而引起方法或者对象的改变
    • 何时应该分离职责: 当跟着需求的变化,两个职责同时变化,就可以不必分离.

  优点:降低了单个类或者对象的复杂度,按照职责把对象分解成更小的粒度,这有助于代码的复用,也有利于进行单元测试。当一个职责需要变更的时候,不会影响到其他的职责

  缺点:`最明显的是会增加编写代码的复杂度。当我们按照职责把对象分解成更小的粒度之后,实际上也增大了这些对象之间相互联系的难度`。

  是否采用单一职责:在方便性与稳定性之间要有一些取舍。具体是选择方便性还是稳定性,并没有标准答案,而是要取决于具体的应用环境。

  • 最少知识原则

  最少知识原则要求我们在设计程序时,应当尽量`减少对象之间的交互`。如果需要某些联系 => 常见的做法是`引入一个第三者对象,来承担这些对象之间的通信作用。如果一些对象需要向另一些对象发起请求,可以通过第三者对象来转发这些请求`。

  • 开放封闭原则

  当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增加代码的方式,但是不允许改动程序的源代码。

  遵守开放封闭原则(使用一些技巧)

  • 利用对象的多态性让程序遵守开放封闭原则,是一个常用的技巧
  • 放置挂钩 => 模板方法模式中的挂钩应用
  • 回调函数

运用思想以及函数

  1. 面向对象编程
  2. 面向切面编程(aop)
  3. 鸭子类型
  4. 函数节流
  5. 函数防抖
  6. 分时函数
  7. 高阶函数
  8. 惰性加载函数

  转载请注明: 迷一样的自信 设计模式

 上一篇
发布-订阅者模式 发布-订阅者模式
发布-订阅者模式原理  它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。 优点 时间上的解耦 对象之间的解耦 缺点 创建订阅者本身要消耗一定的时间和内存 对象与对象之间的必要联系难以跟踪与维
2018-06-04
下一篇 
提高前端性能 提高前端性能
提高性能网络方面 减少dns查询时间 网络请求过程中采用cdn加速 相同的静态资源缓存 减少http请求大小 减少http请求次数(是否可以把多次请求合并成一次(需要后台的逻辑处理)) 服务端渲染 js 延迟加载 setTimeout 让
2018-05-20
  目录