此文是《JavaScript设计模式与开发实践》的读书笔记
本文所有源码可在这里找到
JavaScript设计模式与开发实践
基础知识
鸭子类型
1 |
|
多态
1 |
|
多态2
1 |
|
多态3
1 |
|
封装数据
1 |
|
封装实现
1 |
|
原型模式
1 |
|
this
1 |
|
call、apply
1 |
|
闭包
1 |
|
利用闭包创建测试类型函数
1 |
|
闭包封装变量
1 |
|
回调函数
1 |
|
AOP
1 |
|
函数柯里化
1 |
|
反柯理化
1 |
|
函数截流
1 |
|
分时函数
1 |
|
惰性载入函数
1 |
|
单例模式
基本定义
1 |
|
透明的单例模式
1 |
|
用代理实现单例模式
1 |
|
js中的单例模式
1 |
|
惰性单例
1 |
|
通用的惰性单例
1 |
|
策略模式
基本定义
1 |
|
传统面向对象中的策略模式
1 |
|
js中的策略模式
1 |
|
使用策略模式实现缓动动画
1 |
|
使用策略模式完成表单验证
1 |
|
代理模式
基本定义
1 |
|
虚拟代理模式实现图片预加载
1 |
|
虚拟代理合并http请求
1 |
|
虚拟代理在惰性加载中的应用
1 |
|
缓存代理
1 |
|
用高阶函数动态创建缓存代理
1 |
|
迭代器模式
基本定义
1 |
|
迭代类数组对象和字面量对象
1 |
|
倒序迭代器
1 |
|
迭代器模式实现上传空间选择
1 |
|
观察者模式
基本定义
1 |
|
观察者的通用实现
1 |
|
使用观察者模式实现网站登录
1 |
|
全局发布订阅-对象
1 |
|
支持先发布后订阅、命名空间的观察者模式
1 |
|
命令模式
基本定义
1 |
|
带撤销的命令模式
1 |
|
使用命令模式实现重做
1 |
|
宏命令
1 |
|
组合模式
基本定义
1 |
|
组合模式-引用父对象
1 |
|
模板方法模式
基本定义
1 |
|
钩子方法
1 |
|
模板方法模式在js中的实现
1 |
|
享元模式
基本定义
1 |
|
享元模式重构上传
1 |
|
对象池
1 |
|
通用对象池
1 |
|
职责链模式
基本定义
1 |
|
灵活可拆分的职责链节点
1 |
|
异步的职责链
1 |
|
用AOP实现职责链
1 |
|
用职责链获取文件上传对象
1 |
|
中介者模式
基本定义
1 |
|
中介者模式改造泡泡堂游戏
1 |
|
普通方法购买商品
1 |
|
中介者模式购买商品
1 |
|
装饰者模式
基本定义
1 |
|
装饰函数
1 |
|
用AOP来装饰函数
1 |
|
用AOP实现数据上报
1 |
|
用AOP动态改变函数的参数
1 |
|
利用AOP动态改变参数实现发送ajax前添加token
1 |
|
插件式的表单验证
1 |
|
AOP的注意事项
1 |
|
状态模式
基本定义
1 |
|
状态模式改进电灯程序
1 |
|
状态模式的通用结构
1 |
|
状态模式实现文件上传
1 |
|
状态模式重构文件上传
1 |
|
状态模式注意事项
1 |
|
js版本的状态机
1 |
|
使用delegate函数实现状态机
1 |
|
表驱动的有限状态机
1 |
|
适配器模式
基本定义
1 |
|
单一职责原则
基本定义
1 |
|
最少知识原则
基本定义
1 |
|
开放封闭原则
基本定义
1 |
|
接口和面向接口编程
基本定义
1 |
|
代码重构技巧
基本定义
1 |
|