本专栏是学习《JavaScript设计模式与开发实践》笔记和总结,里面的demo也是来源《JavaScript设计模式与开发实践》。
序号 | 模式 | 特点 | demo |
---|---|---|---|
1 | 单例模式 | 保证一个类仅有一个实例,并提供一个访问它的全局访问点 | demo |
2 | 策略模式 | 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换 | demo |
3 | 代理模式 | 一个对象提供一个代用品或占位符,以便控制对它的访问 | demo |
4 | 迭代器模式 | 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示 | demo |
5 | 发布—订阅模式 | 发布—订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知 | demo |
6 | 命令模式 | 命令模式中的命令(command)指的是一个执行某些特定事情的指令 | demo |
7 | 组合模式 | 组合模式是用小的子对象来构建更大的对象,而这些小的子对象本身也许是由更小的“孙对象”构成的 | demo |
8 | 模板方法模式 | 一种只需使用继承就可以实现的非常简单的模式。由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类 | demo |
9 | 享元模式 | 一种用于性能优化的模式,“fly”在这里是苍蝇的意思,意为蝇量级。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。 | demo |
10 | 职责链模式 | 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止 | demo |
11 | 中介者模式 | 解除对象与对象之间的紧耦合关系。增加一个中介者对象后,所有的相关对象都通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知中介者对象即可 | dmeo |
12 | 装饰者模式 | 装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象。 | demo |
13 | 状态模式 | 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。 | demo |