Java应用架构设计:模块化模式与OSGi
上QQ阅读APP看书,第一时间看更新

第二部分:模式

这一部分是由模块化模式的集合组成的。它们分成五类,每一类的目的稍有不同。不同的类别之间又会有所权衡。例如,可用性模式的目的在于使模块更易于使用,而扩展性模式会使模块更易于重用。可用与重用之间的权衡在第5章中会进行进一步的讨论。

·第8章:基本模式是其他很多模式赖以生存的基础。它们为设计模块化的架构奠定切实可行的思考过程。它们关注将模块作为可重用单元、依赖管理以及内聚。如果要实现设计良好的软件系统,这些都是很重要的。

·第9章:我很惊讶地发现开发团队花了如此多的时间来设计类之间的关系,但是在创建支撑的物理结构方面几乎不会花什么时间。在这里,你会看到帮助你创建模块间低耦合结构的一些指导。你也会看到模块设计会如何影响部署的讨论。

·第10章:尽管耦合是很重要的测量指标,但内聚也同样重要。如果将所有的类都扔到两三个JAR文件中,这很容易创建并且管理依赖也很简单。但如果这样做,会使维护很困难。在该章中,我们将会看到那些有助于确保模块是内聚单元的模式。你会发现在依赖模式和可用模式之间会有一些很有意思的权衡。我会讨论这种权衡,以及你可以做些什么来对其进行管理。

·第11章:设计软件系统的一个目标就是能够在不修改已有代码库的前提下对系统进行扩展。在达成这个目标时,抽象扮演了核心的角色,但是往已有系统中添加新功能只是我们所面临的挑战的一部分。我们还希望能够在不重新部署整个应用的情况下,部署这些新增的功能。扩展性模式的关注点在于帮助我们达成这个目标。

·第12章:通用模式有助于实现模块化开发。与其他的那些模式不同,它们不强调重用、可扩展性以及可用性。相反,通用模式会讨论强制实现模块化的方式并有助于解决与质量相关的问题。