UML-包图中包与包之间的关系
元素
包只是一种一般性的分组机制,在这个分组机制中可以放置UML类元,如类定义、用例定义、装填定义和类元之间的关系等。在一个包中可以放置3种类型的元素,它们分别如下。
□ 包自身所拥有的元素,如类、接口、组件、节点和用例等。
□ 从另一个包中合并或导入的元素。
□ 另外一个包所访问的元素。
可见性
包的可见性用来控制包外界的元素对包内的元素的访问权限。一个包中的元素在包外的可见性,通过在元素名称前加上一个可见性符号来指示。其可见性包括公有的、私有的和可保护的,它们分别使用“+”“-”和“#”来表示。具体说明如下。
□ + 对所有的包都是可见的。
□ - 只能对该包的子包是可见的。
□ # 对外包是不可见的。
关系
依赖
有时一个包中的类需要用到另一个包中的类,这就造成包之间的依赖性,建模人员必须使用<<access > >
或<<import>>
的依赖。<<import>>
的依赖也可以叫作输入依赖或引入依赖。<<access>>
叫作访问依赖,它的表示方法是在虚箭线上标有构造型<<access>>
,箭头从输入方的包指向输出方的包。
泛化
泛化关系是表达事物的一般和特殊的关系,如果两个包之间有泛化关系,意指其中的特殊性包必须遵循一般性包的接口。包与包之间的泛化关系和类间的泛化关系很相似,因此涉及泛化关系的包也像类那样遵循可替换性原则。
导入包
当一个包导入另外一个包时,该包里的元素能够使用被导入包里的元素,而不必在使用时通过包名指定其中的元素。例如,当使用某个包中的类时如果未将包导入,则需要使用包名加类名的形式引用指定的类。
在导入关系中,被导入的包称作目标包。要在UML中显示导入关系,需要画一条从包连接到目标包的依赖性箭头,再加上字符import,如下图所示,将security包导入User包后,在User包中只能使用Identity类,而不能使用Creden类。
不仅包中的元素具有可见性,导入关系本身也有可见性。
导入可以是公共导入,也可以是私有导入。公共导入意味着被导入的元素在它们导入后的包里具有Public可见性,私有导入则表示被导入的元素在它们导入后的包里具有Private可见性。公共导入仍然使用import表示,私有导入则使用access表示。
在一个包导入另一个包时,其导入的可见性import和access产生的效果是不同的。具有Public可见性的元素在其导入后的包中具有Public可见性,它们的可见性会进一步传递上去,而被私有导入的元素则不会。
在上图所示的包模型中,包B公共导入包C并且私有导入包D,因此包B可以使用包C和D中的Public元素,包A公共导入包B,但是包A只能看见包B中的Public元素,以及包C中的Public元素,而不能看见包D中的Public元素。因为包A、B、C之间是公共导入,而包B与C之间是私有导入。
欢迎交流~
文章来源: blog.csdn.net,作者:张艳伟_Laura,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/Laura__zhang/article/details/119319555
- 点赞
- 收藏
- 关注作者
评论(0)