WEB开发网
开发学院软件开发Java 模块化Java简介 阅读

模块化Java简介

 2009-12-21 00:00:00 来源:WEB开发网   
核心提示: 模块化的好处之一是便于测试,一个小模块(具有定义良好的API)通常比应用整体更好测试,模块化Java简介(3),在GUI应用中尤其如此,GUI自身可能不好测试,这通常是在运行时将类名(实现了预定义的工厂接口或抽象类)提供给Class.forName查找来实现,如果指定的类不存在(或者由于其他原因

模块化的好处之一是便于测试。一个小模块(具有定义良好的API)通常比应用整体更好测试。在GUI应用中尤其如此,GUI自身可能不好测试,但是其调用的代码却是可测试的。

模块化的另一个好处是便于进化。尽管系统整体有一个版本号,但实际上,其下有多个模块及相应版本(不论开源与否,总有一些类库——甚至是Java版本—— 是系统所依赖的)。这样,每个模块都可以自己的方式自由地进化。某些模块进化得快些,另一些则会长期保持稳定(例如,Eclipse 3.5 的org.eclipse.core.boot从2008年2月以来一直没有改变过)。

模块化也可给项目管理带来方便。如果一个模块公布的API可供其他模块预先使用,那么各个模块就可以由不同的团队分别开发。这在大型项目中必定会发生,各个项目子团队可以负责不同模块的交付。

最后,将一个应用程序模块化,可以帮助识别正在使用依赖类库的哪个版本,以便协调大型项目中的类库依赖。

运行时与编译时

无论在编译时还是运行时,Java的classpath都是扁平的。换句话说,应用程序可以看到classpath上的所有类,而不管其顺序如何(如果没有重复,是这样;否则,总是找最前面的)。这就使Java动态链接成为可能:一个处于classpath前面的已装载类,不需要解析其所引用的可能处于 classpath后面的那些类,直到确实需要他们为止。

如果所使用的接口实现到运行时才能清楚,通常使用这种方法。例如,一个SQL工具可以依赖普通JDBC包来编译,而运行时(可以有附加配置信息)可以实例化适当的JDBC驱动。这通常是在运行时将类名(实现了预定义的工厂接口或抽象类)提供给Class.forName查找来实现。如果指定的类不存在(或者由于其他原因不能加载),则会产生一个错误。

上一页  1 2 3 4 5 6  下一页

Tags:模块化 Java 简介

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接