BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Java模块化提案: iJAM

| 作者 Geoffrey Wiseman 关注 0 他的粉丝 ,译者 曹云飞 关注 0 他的粉丝 发布于 2007年10月13日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

一个新的提案,iJAM, 已经在JSR-294modules-dev的邮件列表中流传了。它对strawman提案中JSR-294 的超级包('superpackages')的相关逻辑提出了一些修改,并已经收到了Doug Lea的正面反馈

这个提案太棒了!它简明扼要的说明了非反向的深度优先搜索不仅仅是你想要的,而且是干净利落的支持“导入自己的M包”和“把包M作为X导入”的关键部分。

iJAM:一种更有表达力更直观的语法一文中描述了Java模块系统潜在的弱点。:

我们发现,虽然模块系统解决了许多复杂的软件设计问题,但是在解决高级分离问题时它的表达力不够强大。我们还发现模块和类定义的查找功能有一些非直观的行为。

当两个模块依赖于第三个模块,而又不愿意共享上述的第三个模块时,便会出现高级分离问题非直观的查询功能使用了反向深度优先搜索(先父后己),这种方式会使得低级别模块难于控制自己的作用域。

iJAM提案试图通过以下解决方案解决这些问题:——通过深度优先(先己后父)来搜索类和模块定义。——使用允许控制模块共享的导入从句。

Java模块系统(Java Module System)的提前试用版和iJAM都可以下载,供做试验和测试用,这是试验这些提案的好机会,请实践它们并给出你的反馈。

要获得与这些主题更多的信息,请参考 JSR-277:Java模块系统JSR-294:在Java编程语言中改进的模块化支持JSR-291: 对Java SE的动态组件支持和InfoQ的关于辩论的报道,这些辩论涉及到了各个提案的搭配和各自的价值,以及OpenJDK项目中的277和294的提前试用版

查看英文原文Java Modularity Proposal: iJAM


译者简介曹云飞,西安交通大学计算机软件硕士。现就职于Ethos,热衷于新技术的钻研,软件架构与敏捷开发,目前从事流媒体方面的工作。参与InfoQ中文站内容建设,请邮件至china-editorial[at]infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT