当前位置: 首页 > news >正文

模块化

模块化

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

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

 

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();
        }
    });

 

转载于:https://www.cnblogs.com/zhiupping8/p/4997734.html

相关文章:

  • 《FPGA全程进阶---实战演练》第二章之硬件平台的搭建
  • 【APUE】Chapter5 Standard I/O Library
  • centos下yum安装crontab+mysql自动备份
  • JAVA Socket 编程---Socket 和 ServerSocket
  • redhat+11g+rac 安装数据库软件时只有一个节点可选
  • 软件生命周期之需求分析和设计
  • 线程的正确停止
  • C++类的存储
  • PHP+Swoole网络通信框架
  • spark-submit提交任务到集群
  • 结合Scikit-learn介绍几种常用的特征选择方法
  • js图片处理
  • bconsole中相关命名说明
  • Oracle更改redo log的大小
  • parallels desktop克隆ubuntu虚拟机网卡丢失
  • [deviceone开发]-do_Webview的基本示例
  • [译]如何构建服务器端web组件,为何要构建?
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Android组件 - 收藏集 - 掘金
  • HomeBrew常规使用教程
  • Java到底能干嘛?
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • react-native 安卓真机环境搭建
  • Vim 折腾记
  • vue--为什么data属性必须是一个函数
  • 基于web的全景—— Pannellum小试
  • 聚簇索引和非聚簇索引
  • 我有几个粽子,和一个故事
  • 赢得Docker挑战最佳实践
  • ​Linux·i2c驱动架构​
  • ​虚拟化系列介绍(十)
  • #大学#套接字
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (12)目标检测_SSD基于pytorch搭建代码
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .cfg\.dat\.mak(持续补充)
  • .net core 依赖注入的基本用发
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .Net中间语言BeforeFieldInit
  • .net中生成excel后调整宽度
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ IO.File ] FileSystemWatcher
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [AIGC 大数据基础]hive浅谈
  • [Android Pro] AndroidX重构和映射
  • [Android学习笔记]ScrollView的使用
  • [AX]AX2012 R2 出差申请和支出报告
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [Firefly-Linux] RK3568 pca9555芯片驱动详解
  • [IDF]被改错的密码
  • [js]js设计模式小结