模块化

模块化

  模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行 系统性的分解以之处理。模块化是一种处理复杂系统分解为代码结构更合理,可维护性更高的可管理的模块的方式。可以想象一个巨大的系统代码,被整合优化分割 成逻辑性很强的模块时,对于软件是一种何等意义的存在。对于软件行业来说:解耦软件系统的复杂性,使得不管多么大的系统,也可以将管理,开发,维护变得 “有理可循”。

  模块化是软件系统的属性,这个系统被分解为一组高内聚,低耦合的模块。那么在理想状态下我们只需要完成自己部分的核心业务逻辑代码,其他方面的依赖可以通过直接加载被人已经写好模块进行使用即可。

 

AMD和RequireJS

AMD

 Asynchronous Module Definition,用白话文讲就是异步模块定义,对于 JSer 来说,异步是再也熟悉不过的词了,所有的模块将被异步加载,模块加载不影响后面语句运行。所有依赖某些模块的语句均放置在回调函数中。

 AMD规范定义了一个自由变量或者说是全局变量 define 的函数。

define( id?, dependencies?, factory ); 

AMD规范  https://github.com/amdjs/amdjs-api/wiki/AMD

第一个参数 id 为字符串类型,表示了模块标识,为可选参数。若不存在则模块标识应该默认定义为在加载器中被请求脚本的标识。如果存在,那么模块标识必须为顶层的或者一个绝对的标识。

第二个参数,dependencies ,是一个当前模块依赖的,已被模块定义的模块标识的数组字面量。

第三个参数,factory,是一个需要进行实例化的函数或者一个对象。

创建模块标识为 alpha 的模块,依赖于 require, export,和标识为 beta 的模块

    define("alpha", [ "require", "exports", "beta" ], function( require, exports, beta ){
        export.verb = function(){
            return beta.verb();
            // or:
            return require("beta").verb();
        }
    });

 

posted @ 2015-11-26 14:55  zhiupping8  阅读(156)  评论(0编辑  收藏  举报