5.6.3 包的元素
一个包可以“拥有”其他元素,这些元素可以是类、接口、构件、结点、协作、用例和图,也可以是其他包。这种“拥有”就是一种组成关系,意味着元素被声明在包中。如果包被撤销了,则元素也要被撤销。一个元素只能被一个包所拥有。包拥有在其内声明的模型元素,可以是类、关联、泛化、依赖和注解等。包不拥有那些仅仅在包内引用的元素。
包形成了一个命名空间,这意味着在一个包的语境中同一种元素的名称必须是唯一的。不同种类的元素可以有相同的名称。如果可能的话,最好在不同的包中避免用重复的名称,以避免造成混乱。
在一个包中允许不同种类的元素有相同的名称。然而,在实际开发中,为避免不必要的混乱,最好不要这样做,而是对一个包中的各种元素都唯一地命名。(https://www.daowen.com)
拥有关系的语义使包成为一种按规模来处理问题的重要机制。没有包,最后将得到一个庞大的、平铺的模型,其中的所有元素的名称都要唯一,这种情况很难管理。特别是在采用了由多个工作组开发的类和其他元素时,问题就更严重。包有助于控制那些组成系统而又以不同的速度随时间演化的元素。
UML假定在模型中有一个匿名的根包,其结果是,要求位于模型顶层的每一种元素都必须被唯一地命名。