UML 动态 class 关联

UML dynamic class association

我有一个名为 pet 的 class,它动态关联到 1 dogcat,但不能同时关联到两者。

这种动态关联的名称是什么?我如何在 UML class 图中表示这一点,同时明确每个 pet 与其中一个 dogcat 相关联,但不能同时与两者相关联?

你追求的是简单的继承吗? Pet 在我看来是一个抽象的概念,而 Dog 和 Cat 则是具体的概念。在你的情况下,我最初的解决方案可能是有一个抽象的 Pet class (无法实例化)专门用于 Dog 和 Cat (可以实例化)。

如果您真的很想拥有一个 Pet 的实例,它与 Cat 或 Dog 的实例相关联,那么您可能必须管理这个无论如何通过继承。可能是这样的:

将您的问题作为现实世界的模型(领域模型)阅读时,您的问题措辞有点滑稽。

在现实世界中,宠物与动物无关。相反,宠物 一种动物。因此,class petsanimals 的(角色)子 class,在域模型中,基于术语 "pet" 在英语中的含义.

角色 classes 的概念并没有得到主流 OOP 语言的很好支持。一个对象可能同时扮演很多角色(即实例化很多角色classes)(多次class化)也可能停止扮演一个角色,即停止实例化对应的角色角色class(动态class化)。

也许您对先制作域模型不感兴趣,然后再制作(技术独立的)设计模型,然后您可以将其转换为 Java 或 C# class 模型。

也许您想直接跳转到 C++ class 模型,而不是首先尝试理解底层领域概念。

你可以这样做,但我认为这不是个好主意。