作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的应用程序:目的是根据错误添加记录(但并非所有错误都会导致添加新记录,只有主要错误)。每个 session 都有很多错误,然后内部服务将管理这些错误以了解哪些是主要错误(哪些是“小”错误,我的意思是隐含或相关或附加到此主要错误)。
UML 图:
所以我需要您对我的 UML 图的帮助和建议,您认为这是最好的方法吗?我真的需要在这里进行子类化吗(或者可能只放置两个不同的类 Error 和 MainError 会更好)?
非常感谢
最佳答案
我认为下图可以满足并清楚地重申您的要求。
这表达的是:
Session
遇到零个或多个 Errors
Error
遇到一个Session
Error
必须是一个且仅是其子类之一的实例(“完整”意味着一个实例必须是一个子类的实例;“不相交”意味着一个实例不能被多重分类,无论如何这在 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 以了解如何执行此操作。)请注意,您可能希望将多对多关联映射到单独的关系数据库表。不过,这是一个单独的讨论。
关于java - UML 规范 : Do I need inheritance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458978/
我是一名优秀的程序员,十分优秀!