这是我的应用程序:目的是根据错误添加记录(但并非所有错误都会导致添加新记录,只会导致主要错误)。 每个会话都有很多错误,然后内部服务将管理这些错误,以了解哪些是主要错误(哪些是'小'错误,我的意思是暗示或相关或附加到此主错误)。
UML图表:
所以我需要你对我的UML图的帮助和建议,你认为这是最好的方法吗?我真的需要这里的子类(或者只是放两个不同的类Error和MainError会更好)?
非常感谢
答案 0 :(得分:3)
我认为以下图表可以清楚地满足并重申您的要求。
这表达的是:
Session
遇到零或更多Errors
Error
Session
Error
必须是一个实例,并且只有一个子类(“完成”表示实例必须是子类的实例;“disjoint”表示实例不能被多重分类,这是不可能的无论如何,在Java中。)Main Error
会导致零个或多个Subordinate Errors
Subordinate Error
由零个或多个Main Errors
隐含的是,每个Error
最初都是Unclassified Error
创建的,后来分为Main Error
或Subordinate 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
。