有多少数据对象层是一个好习惯?

时间:2011-03-23 14:56:30

标签: java ibatis software-design

我们有一个中型Java服务器,其数据以下列方式流动:

SQL数据库 - >数据层 - >业务层 - > XML序列化

值得注意的是,数据模型在层之间的变化大多不会发生变化。但我被告知使用单一数据模型作为: SQL数据库 - (IBATIS) - >型号 - >将模型转换为XML - 不是一个好主意,因为模式更改意味着模型中的更改,然后更改应用程序中的所有层。 XML变化也意味着模型必须改变。

在这种情况下,建议有两个对象层吗? 1)业务模式使用IBatis映射到的业务逻辑数据层。 2)JAXB用于转换为XML的XML层。

2 个答案:

答案 0 :(得分:2)

注意:我领导EclipseLink JAXB (MOXy),EclipseLink提供JAXB和JPA实现。

我建议使用一个通过JAXB映射到XML的数据模型,并通过JPA映射到数据库。

  

架构更改意味着更改   模型,然后在所有层中更改   申请。

  • 如果模式更改引入了新数据,那么它确实会影响模型,不引入新数据的模式更改(更改元素排序,添加分组元素)应该只影响映射元数据。
  

所以建议有两个   在这种情况下对象层?

  • 如果您有两个对象模型,那么您将引入一个在对象模型之间进行转换的图层。这涉及您需要处理的另一个库,以及需要维护的更多代码。现在,对架构的更改会影响对象模型和对象转换层。这对一个对象模型场景也有类似的影响。

答案 1 :(得分:1)

一般来说:是的,最好有一个单独的模型。

P.S。 因为在你的问题中你称它为图层,你可能会喜欢以下卡通:http://geekandpoke.typepad.com/geekandpoke/2011/03/architectural-best-practices.html 不要太认真:)