0%


单一职责原则

就一个类而言,应该仅有一个引起它变化的原因。在JavaScript中,需要用到类的场景并不太多,单一职责原则(SRP)更多的是被运用在对象或者方法级别上。
总之,SRP原则体现为:一个对象(方法)只做一件事情。
例如:

  • 代理模式

  • 迭代器模式

  • 单例模式

  • 装饰者模式
    但是,并不是所有的职责都应该一一分离的,一方面如果随着需求的变化,有两个职责是同时变化的,那就不必分离他们。比如在ajax请求的时候,创建xhr对象和发送xhr请求几乎总是在一起的,那么创建xhr对象的职责和发送xhr对象的职责就没有必要分开。

另一方面,职责的变化轴线仅当它们确定会发生变化时才有意义,即使两个职责已经被耦合在一起但他们没有发生改变的征兆,那么也许没有必要主动分离他们,在代码需要重构的时候再分离也不迟。

阅读全文 »


高阶函数是至少满足下列条件之一的函数

  • 函数可以作为参数被传递

  • 函数可以作为返回值输出
    (js这么好的语言中的函数当然满足 ^^)_

阅读全文 »


用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象。

阅读全文 »

定义:定义一系列算法,把他们一个个封装起来,并且使他们可以相互替换。

需求:绩效为S的人年终奖有4倍工资,绩效为A的人年终奖有3倍工资,绩效为B的人年终奖有2倍工资。

阅读全文 »


用策略模式实现缓动动画

需求:让小球以各种缓动效果在页面中运动
动画开始前需要记录的:

  • 小球所在原始位置

  • 小球移动的目标位置

  • 动画开始时的时间点

  • 小球运动的时间点
    之后,用setInterval创建一个定时器,定时器每19秒循环一次。

阅读全文 »