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模块系统构建的应用。