java - 这是一个足够好的抽象还是我可以做得更好?

标签 java oop jpa-2.0 ooad

需求:需求是拉取(execute())一组数据源。拉动是有序的,可以分组成小的子组。

设计:每次拉动都被抽象为一个步骤。子组表示为 WaterFallStep,因为组中每个数据源的拉取都是有条件的,并且遵循瀑布模型,即如果组中的第一个数据源拉取成功,那么我会脱离该组。

问题

  1. 这是一个足够好的抽象还是我可以做得更好?
  2. 如何在 JPA 2 中表示这一点?我知道我们可以使用鉴别器来映射继承,但我主要关心的是 WaterFallStep-to-BasicStep 之间的一对多关系

谢谢。

alt text

最佳答案

我认为你应该在这里使用复合模式。我想说每个步骤都应该处理对步骤集合的引用。如果您愿意,可以将此集合移至 WaterfallStep,但它仍然应该是步骤的集合,而不是 BasicSteps 也不是 AbstractSteps。

关于 JPA,您应该使用 OneToMany 注释。有很多使用此注释的示例。

祝你好运

关于java - 这是一个足够好的抽象还是我可以做得更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474666/

相关文章:

java - Spring @Transactional 属性是否适用于私有(private)方法?

java - 如何捕获从@Around 抛出的连接点中的异常

java - 如何在没有Eclipse的情况下运行Spring Boot应用程序?

java代码如何读取csv文件中的空值

java - JPA/Metamodel : Strange (inconsistent ? ) Sun Docs 中的示例

php - 我正确使用 OOP 了吗?

java - 如何连接 UI 和业务逻辑

java - 使用 Javassist 添加字段并更改其值

jpa lazy使用条件api获取多个级别的实体

java - EntityListener 的 @PreUpdate 内的 EJB 上下文 JNDI 查找失败