使用其他框架的类是不是很糟糕?

时间:2012-11-11 18:34:26

标签: java java-ee jpa

使用来自其他框架的类,枚举等是不是很糟糕?我在我的存储库中有一些基于JPA的finder方法,我想传递fetch类型(无论是懒惰还是急切地加载对象),而JPA框架中的FetchType枚举都适合这个目的。但创建自己的枚举/类更好吗?我知道它在我的应用程序和框架之间建立了耦合,但我的应用程序已经在使用JPA。

4 个答案:

答案 0 :(得分:2)

好像你已回答了自己的问题。

  

...来自JPA框架的FetchType枚举符合目的。

如果JPA已经是您的应用程序的依赖项,并且它们的类型适合您的用例,则没有理由重新发明轮子以避免使用JPA类型。

<子> P.S。当他建议将类型的使用限制在持久层时,Gamb在他的回答中提出了一个非常好的观点。

答案 1 :(得分:2)

实际上,您可以使用FetchType枚举,但请考虑您在哪里使用它。如果您有分层设计,请避免在除持久层之外的任何层中使用该枚举,否则您必须从更高层中的JPA导入引用(如果需要)。

另一种方法(因为您只有EAGERLAZY)是定义是否应该提取字段并将该条件指定为boolean值,例如lazyLoad标志。

答案 2 :(得分:1)

就像robjb已经说过的那样,没有必要重新发明轮子。 这是框架的全部目的:为开发人员提供工具和助手,以简化标准任务。 所以我建议使用Framework-Classes。如果它们不匹配你需要100%,你可以随时扩展它们以满足你的需求 - 再次,没有理由重新发明整个轮子如果缺少的只是一个小小的螺丝:-P

答案 3 :(得分:1)

即使您已经在使用框架,只要可能,我会保持逻辑的上层没有它。原因:

  • 有人在阅读您的代码并看到您使用框架中的类时会认为它用于为您的框架进行通信(好吧,这很弱)。

  • 如果您想要更改,只要您使用框架中的类与其进行交互,就会更容易。

但这些都不是一成不变的。如果你自己开发课程将是一个很大的时间投入,你可以决定去做,并希望没有人想改变引擎。