小结

在这章中你学习到了若干种流行的设计模式,并且也知道了如何在JavaScript中实现它们。我们讨论过的设计模式有:

  • 单例模式

    只创建类的唯一一个实例。我们看了好几种可以不通过构造函数和类Java语法达成单例的方法。从另一方面来说,JavaScript中所有的对象都是单例。有时候开发者说的单例是指通过模块化模式创建的对象。

  • 工厂模式

    一种在运行时通过指定字符串来创建指定类型对象的方法。

  • 遍历模式

    通过提供API来实现复杂的自定义数据结构中的遍历和导航。

  • 装饰模式

    在运行时通过从预先定义好的装饰器对象来给被装饰对象动态添加功能。

  • 策略模式

    保持接口一致的情况下选择最好的策略来完成特定类型的任务。

  • 外观模式

    通过包装通用的(或者设计得很差的)方法来提供一个更方便的API。

  • 代理模式

    包装一个对象以控制对它的访问,通过合并操作或者是只在真正需要时执行来尽量避免开销太大的操作。

  • 中介者模式

    通过让对象不彼此沟通,只通过一个中介者对象沟通的方法来促进解耦。

  • 观察者模式

    通过创建“可被观察的对象”使它在某个事件发生时通知订阅者的方式来解耦。(也叫“订阅者/发布者”或者“自定义事件”。)