14.10 小结
以下是本章中的关键概念。
- 关注点隔离和信息隐藏是构造结构良好、易于维护与理解的软件的重要原则。
- Java 9之前,你可以根据特定的需求,利用包、类以及接口对代码进行模块化,不过以上这些方式都缺乏足够的特性,无法进行有效的封装。
- “类路径地狱”问题导致我们很难对应用的依赖性进行分析。
- Java 9之前,JDK还是单体型的结构,导致很高的维护成本并限制了Java的演进。
- Java 9引入了新的模块系统,它通过module-info.java文件命名模块,指定其依赖性(通过
requires)以及导出的公共API(通过exports)。 - 使用
requires子句,你可以指定一个模块对其他模块的依赖。 - 使用
exports子句可以导出模块中的某些包,将其声明为公有类型,提供给其他模块使用。 - 推荐使用互联网域名的逆序作为模块的命名方式。
- 位于模块路径上且没有提供module-info文件的JAR文件会被Java 9作为自动模块处理。
- 自动模块隐式地导出其全部包给其他模块使用。
- Maven支持按照Java 9模块系统构建的应用。
