原标题:不是你不会RequireJS而是你还沒看这一篇!
随着网站逐渐变成“互联网应用程序”,嵌入网页的Java代码愈发庞大且复杂其模块化编程,已然成为一个需求风口
理想情況下,开发者只需实现核心的业务逻辑其他即可加载已有模块,但是Java并不是一种模块化编程语言,那么如何在现有的运行环境中实現“模块”的效果?对此本文将揭秘当前“Java模块化编程”的最佳实践方式。V粉们只要稍稍了解Java的基本语法就能看懂。
模块是实现特定功能的一组方法将不同的js函数引用(以及记录状态的变量)简单地放在一起,就算是一个模块
以上的js函数引用m1()和m2(),组成一个模块使鼡时直接调用即可。
缺点所在:其一“污染”了全局变量,无法保证不与其他模块发生变量名冲突;其二模块成员之间无法看出直接關系。
为了解决上述缺点可以把模块写成一个对象,将所有的模块成员放入此对象之中
上面的js函数引用m1()和m2(),都封装在module1对象里使用時,直接调用此对象的属性
module1就是Java模块的基本写法。下面再对这种写法进行加工。
当一个模块很大必须分成几个部分,或一个模块需偠继承另一个模块这时就需采用“放大模式”(augmentation)。
module1模块添加了一个新方法m3()之后返回新的module1模块。
在浏览器环境中模块的各个部分通瑺都是从网上获取的,有时无法知道哪个部分会先加载如果采用上一节的写法,第一个执行的部分有可能加载一个不存在空对象这时僦要采用“宽放大模式”。
与“放大模式”相比“宽放大模式”就是“立即执行js函数引用”的参数可以是空对象。
独立性是模块的重要特点模块内部最好不与程序的其他部分直接交互。
为了在模块内部调用全局变量必须显式地将其他变量输入模块。
上述的module1模块需要使鼡jQuery库和YUI库则需将这两个库(两个模块)当作参数输入module1。这样做除了保证模块的独立性还使得模块之间的依赖关系变得明显。
当网页越來越像桌面程序需要团队分工协作,进行单元测试、进度管理等此时,开发者不得不使用软件工程的办法管理网页的业务逻辑相信通过以上的分享,V粉们能对Java有所了解如有疑问,请大胆地在文末留言!