设计模式
设计模式,听起来很高大上的一个专业词汇,但真正了解了会发现其实并不很难理解。最近在看JavaScript设计模式,虽才看了一点,但整体感觉下来,设计模式简单来说就是软件开发行业里前人总结下来的面临软件开发过程中遇到的问题的一般解决方案,都是历来软件开发人员们智慧的结晶。有点类似于开发套路,就像作文写作模板的感觉。掌握了设计模式的套路,开发起来就会更加行云流水。
设计模式其实不分语言,只是有不同语言基础的人学习开发模式看代码示例的时候还是要以自己熟悉的语言为主才更好理解,比如菜鸟教程对设计模式的介绍就是以 Java 为示例语言的,我看的就是以 JavaScript 为示例语言的。
模块模式
在设计模式中,有一种模式叫 模块模式。模块模式的做法就是将代码模块化,将复杂的系统分解成 高内聚,低耦合 的模块,使得系统开发可控、可维护、可扩展,并且可提高代码的复用率。
同步模块模式
Synchronous Module Definition ,简称 SMD,即 同步模块模式。
同步模块模式在 JavaScript 生态系统的应用之一就是 Commonjs 规范的出现。
Commonjs 项目最开始是由 Mozilla 的工程师 Kevin Dangoor 在2009年1月创建的,当时的名字是 ServerJS。2009年8月,这个项目改名为 CommonJS,以显示其 API 的更广泛实用性。CommonJS 是一套规范,它的创建和核准是开放的。这个规范已经有很多版本和具体实现。平时也被简称为 CJS。
NodeJS 的模块系统就是 Commonjs 的一个版本实现。由于同步模块模式的原因,Commonjs 规范只适用于非浏览器环境。
异步模块模式
Asynchronous Module Definition,简称 AMD,即 异步模块模式。
异步模块模式在 JavaScript 生态系统的应用之一就是 AMD 规范。
AMD 规范是为浏览器环境设计的。因为浏览器不符合同步加载模块的条件,所以不能使用 Commonjs 规范。