指南:设计中的导入依赖关系
主题
处理包之间的导入依赖关系是构建对象模型的一个重要方面。如果某个包的任何类有可以追溯到另一个包中的类的关系,则该包依赖于另一个包。为表达这样的依赖关系,使用从某个包到它依赖的包的导入依赖关系来表示。

使用导入依赖关系来表达包之间的依赖关系。
使用以下方法发展导入依赖关系:
- 开始处理对象模型之前,制订依赖关系的概述作为工作指南。
- 完成模型后,使用它来显示实际存在的依赖关系。这需要更新对象模型中的导入依赖关系。
- 如果以前将模型分成包,则使用导入依赖关系来显示允许存在依赖关系的地方。
- 包之间的依赖方式影响系统对变更的容忍度。如果满足以下条件,将更易于更改对象模型:
- 从每个包的外部引用最少数量的所包含的类。如果引用很多类,则该包将有过多的不同职责,应将其分成两个。
- 使每个包依赖于较少的其它包。
- 独立测试每个包。这表示应能够通过模拟某个包所依赖的包,来测试该包。不应要求其它包完全实现或几乎完全实现。如果可以独立测试包,则每个包的系统开发和维护将更容易。
- 将对象模型的常规部分放到单独的包中,其它包依赖于该包。如果有这样的包,请严格注意发行版的处理,因为对该包的更改会影响到系统的几个部分。
示例
假设您发现“回收机器”中的客户面板和操作员面板类的某些公共部分。将这些公共服务指定到一个新的类面板,并将其放在一个新的包面板集合中。然后另两个类可以引用该类以使用公共服务。因为这些类属于两个单独的包,所以这两个包将依赖于新包。这样消除冗余表示只需要在一个地方就可以完成对公共功能的更改。
|