【问题标题】:Is this a good enough abstraction or I can do better?这是一个足够好的抽象还是我可以做得更好?
【发布时间】:2010-12-17 20:52:28
【问题描述】:

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

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

问题

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

谢谢。

【问题讨论】:

  • 还有什么意见或建议吗?

标签: java oop jpa-2.0 ooad


【解决方案1】:

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

关于 JPA,您应该使用 OneToMany 注释。这个注解的使用例子很多。

祝你好运

【讨论】:

  • 感谢您的建议。我从复合模式开始;-)。但是有些“行为”不适用于叶子,例如瀑布行为并记住我需要采用这种设计的 liskov 替换原则。如果我想太多,请告诉我 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 2017-11-24
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多