UML规范:我需要继承吗?

时间:2015-07-16 15:51:22

标签: java jpa inheritance uml subclassing

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

UML图表:enter image description here

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

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

非常感谢

2 个答案:

答案 0 :(得分:3)

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

UML analysis diagram

这表达的是:

  • Session遇到零或更多Errors
  • Error
  • 中遇到Session
  • Error必须是一个实例,并且只有一个子类(“完成”表示实例必须是子类的实例;“disjoint”表示实例不能被多重分类,这是不可能的无论如何,在Java中。)
  • Main Error会导致零个或多个Subordinate Errors
  • 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以了解如何执行此操作。)请注意,您可能希望将多对多关联映射到单独的关系数据库表。不过,这是一个单独的讨论。

答案 1 :(得分:0)

自己讨论图表。什么是Error?它只包含ErrorID。这不是一个信息。那么为什么要创建这样一个类?我没有看到任何理由。所以当没有理由的时候,为什么要创造呢?你有。这是多余的。您可以使用从MainError到自我的关联。然后,您可以将MainError重命名为Error