5.6.4 包的嵌套
包之间可以有关系,如继承关系、依赖关系等。如果包中又含有包,称为包的嵌套。UML允许包的嵌套。包的嵌套有两种表示方法:内嵌式表示法和树形层次结构表示法。在实际使用中,最好避免过深地嵌套包,两、三层的嵌套差不多是可管理的极限。
案例学习
◎图5-21是一个包嵌套的内嵌式表示法的例子。从图中可以看出,“进销存”包是“企业综合系统”包中的一个子系统,这个子系统下还有4个内嵌套的子包:“原材料购进管理”子包、“原材料存储管理”子包、“产成品存储管理”子包和“销售管理”子包。从图中还可以看出,这4个内嵌套的子包之间有两个依赖关系:“原材料存储管理”子包依赖于“原材料购进管理”子包;“销售管理”子包依赖于“产成品存储管理”子包。
(https://www.daowen.com)
图5-21 包嵌套的内嵌式表示法
◎可以将如图5-21所示的模型表示成树形层次结构,这样包含关系更为直观,如图5-22所示,但这样做后包之间的依赖关系就很难清楚地表示出来。

图5-22 包嵌套的树形层次结构表示法