总结

我们以三个密切相关的模式开始本章,它们是策略、状态和模板。

策略允许我们将一系列密切相关的组件的公共部分提取到称为上下文的组件中,并允许我们定义上下文可用于实现特定行为的策略对象。 状态模式是策略模式的变体,其中策略用于对组件在不同状态下的行为进行建模。 相反,模板模式可以被视为策略模式的 “静态” 版本,其中不同的特定行为被实现为模板类的子类,模板类对组件的公共部分进行建模。

接下来,我们了解了现在已成为 Node.js 的核心模式,即 Iterator。 我们了解了 JavaScript 如何为该模式提供本机支持(使用迭代器和可迭代协议),以及如何使用异步迭代器作为复杂异步迭代模式甚至 Node.js 流的替代方案。

然后,我们研究了中间件,它是 Node.js 生态系统中诞生的一种非常独特的模式。 我们了解了如何使用它来预处理和后处理数据和请求。

最后,我们体验了命令模式提供的可能性,它可用于实现无数的功能,从简单的撤消/重做和序列化,到更复杂的操作转换算法。

我们现在已经结束了专门讨论 “传统” 设计模式的最后一章。 到目前为止,您应该已经在您的工具带中添加了一系列对您的日常编程工作非常有用的模式。

在下一章中,我们将把注意力转向一个超越服务器端开发界限的主题。 事实上,借助 Node.js,我们可以创建 “通用” JavaScript 应用程序,或者换句话说,可以像在浏览器上运行一样无缝地在服务器上运行的应用程序。 那么,请继续关注,了解最有用的通用 JavaScript 模式。