UML Class - 在没有派生的 class 时使用基础 class

UML Class - Using the base class when there are no derived classes

您好,我正在尝试准备 ER 图 + class 图。 该系统非常简单。它涉及一个简单的航班预订系统,有两个角色(演员)。
在 ERD 中,我们可以使用 "IsAdmin" 属性来区分这两个角色("true" 表示管理员,"false" 表示客户)。
在class图中,我有一个名为"User"的基础class(包含客户角色的所有属性和方法以及所有属性和一些 管理员角色的方法)。
我应该在处理客户实体时使用 User class(因为属性和方法相同),还是应该创建一个从 User class 派生的空 class 以便清楚?

这取决于...

基本上,在处理业务对象时,我不会使用名为 "User" 的 class,它表示全有或全无。您有一个 "Customer" 和一个 "Admin",可能还有许多其他 "User"。不要将 "User" 设为 "Customer"。

撇开这一点,如果您使用的序列化框架通常需要 table 和 class 具有相同的名称。

另外你不应该启动一个优化的系统。给予清晰度一个有利于这一点的优势。它迟早会付出更多。无论如何:您也可以在后期进行优化。

ER 图 (ERD) 和 UML Class 图 (CD) 都是信息建模语言,本质上涵盖相同的概念,但使用不同的视觉语法。两者都允许建模 classes 与 properties/attributes(和 operations/methods 在 CD 的情况下)定义实体类型和关联(或关系类型)。

由于 CD 是最近才被定义的,因此它们比 ERD 更具表现力,也更包容 ERD。因此,无需将信息模型同时复制为 ERD 和 CD。相反,您应该制作一个逻辑 class 设计图,从中您可以获得 OOP class 模型(定义,例如 Java classes)和 RDB table 模特。

如果需要,您可以从 CD 中导出 ERD。