我正在使用类图绘制一个软件,现在我想在包图中将其分成包。
我的问题是:你如何表示来自两个不同包的类之间的连接?
例如,我的“数据库”包中有一个类,它连接到“视图”包中的另一个类。但是,如果我将它们分成两个单独的类图(每个包一个),则不会表示该连接。这个可以吗?
我正在使用类图绘制一个软件,现在我想在包图中将其分成包。
我的问题是:你如何表示来自两个不同包的类之间的连接?
例如,我的“数据库”包中有一个类,它连接到“视图”包中的另一个类。但是,如果我将它们分成两个单独的类图(每个包一个),则不会表示该连接。这个可以吗?
包只是对 UML 元素进行分组的一种方式,它们主要并不暗示元素本身之间的关系。要显示元素之间的关系,只需将它们适当地连接起来,与它们在包中的位置无关。当然,包内部的元素关系应该比与外部的关系更多。包中的元素表明它们彼此之间的关系比与外部元素的关系更强。
您可以在包级别上显示包层次结构。
当您在包内创建图表时,您可以创建不同的类型:纯粹的包内部,例如外部关系或混合关系。这取决于最适合什么。
在一张图上呈现来自各种包的元素绝对没问题。在这种情况下,你应该记住包创建了一个命名空间,因此元素应该用一个限定的名称呈现。请注意,如果您为包 A 中的元素创建类图,您只需要对来自其他包(例如包 B)的元素使用限定名称。
包的一个很好的用途是在域图中显示不同问题空间之间的依赖关系。每个问题空间都由一个包表示。包通过依赖线连接。这意味着每个包都向通过依赖关系相关的包公开一个接口。
在我看来,您有一点域污染。也许数据库不应该知道视图。也许应该有一个控制器来读取数据库并更新视图。访问包内功能的类将访问包接口。
这种技术对系统设计的好处在于,这种封装和解耦使得在一个类中更改内部结构变得更容易,而不会影响系统的变化。