gpt4 book ai didi

java - UML 规范 : Do I need inheritance?

转载 作者:行者123 更新时间:2023-11-30 08:10:51 26 4
gpt4 key购买 nike

这是我的应用程序:目的是根据错误添加记录(但并非所有错误都会导致添加新记录,只有主要错误)。每个 session 都有很多错误,然后内部服务将管理这些错误以了解哪些是主要错误(哪些是“小”错误,我的意思是隐含或相关或附加到此主要错误)。

UML 图:enter image description here

所以我需要您对我的 UML 图的帮助和建议,您认为这是最好的方法吗?我真的需要在这里进行子类化吗(或者可能只放置两个不同的类 Error 和 MainError 会更好)?

  • 所以每个主要错误都有一个相关错误列表
  • 一个 Main Error 不能是另一个 MainError 列表的一部分
  • 一个错误可以关联到多个主要错误
  • 我正在使用 JPA 开发 Java 应用程序
  • 一条记录只与一个 MainError 相关联,显然有很多错误(因为每个 MainError 都有一个错误列表)

非常感谢

最佳答案

我认为下图可以满足并清楚地重申您的要求。

UML analysis diagram

这表达的是:

  • A Session遇到零个或多个 Errors
  • Error遇到一个Session
  • Error必须是一个且仅是其子类之一的实例(“完整”意味着一个实例必须是一个子类的实例;“不相交”意味着一个实例不能被多重分类,无论如何这在 Java 中是不可能的。)
  • A Main Error导致零个或多个 Subordinate Errors
  • A Subordinate Error是由零个或多个 Main Errors 引起的

这意味着每个Error最初创建为 Unclassified Error后来分类为Main ErrorSubordinate Error .

我没费心去建模Record , 因为它太模糊了,没有给讨论增加任何内容。

如果您要实现此模型,关联端将进行名称更改,在保留语义的同时变为 normalLookingCamelCaseForJava。以下是名称更改:

  • encounters会变成encounteredErrors类型为 List<Error>
  • encountered in会变成encounteringSession类型 Session
  • causes会变成causedSubordinateErrors类型 List<SubordinateError>
  • caused by会变成causingMainErrors类型 List<MainError>

在 JPA 中,您可以将所有错误类映射到一个带有鉴别器的表中,这将使重新分类的性能更高。 (请参阅 changing entity type in JPA 以了解如何执行此操作。)请注意,您可能希望将多对多关联映射到单独的关系数据库表。不过,这是一个单独的讨论。

关于java - UML 规范 : Do I need inheritance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com