职责链模式

Chain

概述
多个对象都有机会处理请求
避免请求的发送者和多个接收者之间直接的耦合
将接收者链条化,直到找到能够处理该请求的对象
应用
OA审批
注册登录过程中的异常处理
参考代码
HTML
<input type="password" id="pw">
<button id="btn">sub</button>
常规判断:长度不小于6的非空数字;扩展性不好
btn.onclick = function () {
  if (pw.value.length == 0) {
    console.log('pw is null');
  } else if (isNaN(pw.value)) {
    console.log('number required');
  } else if (pw.value.length < 6) {
    console.log('length < 6');
  } else {
    console.log(pw.value);
  }
}
Usage