Follow me on GitHub

为什么 Java 9 要支持模块化?

模块化设计是一种应对软件复杂度的有效工具,但 Java 对它支持并不理想。

在 Java 9 之前,Java 只能通过 class 支持有限程度的模块化,虽然类可以通过 package 分组,但 package 无法明确声明自己对外提供的接口,package 之间也无法明确声明依赖关系,结果是孱弱的模块设计、错综复杂的依赖关系,造成软件复杂度上升过快,最后降低开发、维护效率。

Java 9 在类之上增加了一层抽象,类似 Scala 的 package object,补齐这块短板后,Java 才真正地支持模块化设计,这是语言抽象能力、工程能力的巨大进步,将极大解放开发人员的心智负担,极好!