封装 & 设计模式

编程界的套路

封装

什么是封装

不懂的技术词汇——查维基百科

  1. 将细节包装或隐藏起来
  2. 防止外界了解内部细节

显示生活中的例子:

  1. 买菠萝 - 不需要你削皮了
  2. 中介     - 不需要你辛苦了(同时价格信息对你隐藏了)

jQuery 对 DOM 的封装

这个封装,我给100分

调用者不需要关心细节

$div.on('click', f)

$.ajax

IE: attachEvent

W3C: addEventListener

Old: onclick =

XMLHttpRequest...

onreadystatechange...

为什么会有套路?

因为有重复的代码、有相似的代码

  1. 大家都是在做网页
  2. 大家都是在 CRUD

是不是可以总结一些经验?

对于一类问题,我们有一个通解

以事件绑定为例

有重复的代码、有相似的代码

委托者模式(事件委托)大家已经知道了,说个大家不知道的

before 套路:http://js.jirengu.com/domu/1/edit?js

after 套路:?

抽象能力!!!

表驱动法在《代码大全》有提到

其他

设计模式

  1. 利用闭包隐藏变量
  2. 使用 prototype 继承
  3. 观察者模式
  4. 工厂模式
  5. ……

一种思想,在程序员间达成共识,就可以变成一种设计模式

观察者模式(订阅模式)

事件 

封装 & 设计模式

By 方方

封装 & 设计模式

  • 2,106