新闻中心> 文章详情
作为一般概念,模块化有助于将应用分解为不同的部件,各个部件可以单独测试(和开发)。正如上面所提到的,大多数类库都是模块。那么,对于那些生产类库提供给别人使用的人来说,模块化是一个非常重要的概念。通常,依赖信息是在构建工具(mavenpom或ivy-module)里进行编码并被明确记录在类库使用文档中的。另外,在Java软件开发培训或是高层类库开发过程中需要修改较低层级类库bug,以提供更好支持的情况并不少见,即便低层类库的最新版本已经对bug进行了修正。(可是有时候这种情况可能会导致出现一些微妙的问题。)南京Java培训
如果一个类库是提供给他人使用的,那么它就已经是一个模块了。但是世上鲜有“HelloWorld”这样的类库,也鲜有“HelloWorld”这样的模块。只有当应用足够大时(或者是用一个模块化构建系统进行构建时),把应用划分为不同部件的概念就派上用场了。
模块化的好处之一是便于测试。一个小模块(具有定义良好的API)通常比应用整体更好测试。在GUI应用中尤其如此,GUI自身可能不好测试,但是其调用的代码却是可测试的。
模块化的另一个好处是便于进化。尽管系统整体有一个版本号,但实际上,其下有多个模块及相应版本(不论开源与否,总有一些类库——甚至是Java版本——是系统所依赖的)。这样,每个模块都可以自己的方式自由地进化。某些模块进化得快些,另一些则会长期保持稳定(例如,Eclipse3.5的org.eclipse.core.boot从2008年2月以来一直没有改变过)。
模块化也可给项目管理带来方便。如果一个模块公布的API可供其他模块预先使用,那么各个模块就可以由不同的团队分别开发。这在大型项目中必定会发生,各个项目子团队可以负责不同模块的交付。
最后,将一个应用程序模块化,可以帮助识别正在使用依赖类库的哪个版本,以便协调大型项目中的类库依赖。