首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据模型演变

数据模型演变
EN

Stack Overflow用户
提问于 2010-06-06 12:43:22
回答 2查看 405关注 0票数 1

在编写代码时,我发现需要更改数据模型(例如,在类中添加/更改/删除数据成员)。当这些数据模型属于一个接口时,似乎很难在不破坏现有客户端代码的情况下进行更改。因此,我想知道是否有任何最佳实践来设计接口/数据模型,以最小化演变过程中的影响。

我能从google找到的最接近的东西就是数据合同版本控制。但这似乎是.net特有的话题。我想知道,同样的实践是否适用于Java世界,或者是否有不同的或通用的方法来处理数据模型演变。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2010-06-06 13:36:22

无论是在Java领域还是在数据建模域中,都没有简单的答案。

  • 某些更改是向上兼容的;例如,添加了新方法、可选字段、子类等。
  • 某些更改不兼容,但可以使用简单的转换来处理;例如,添加必填字段可以通过添加额外构造函数参数的转换来支持。
  • 某些更改不可避免地需要程序员的重大干预。

另一点需要注意的是,当与数据模型对应的数据是持久的时,问题会变得更加困难,并且不能在数据模型更改时丢弃。这就是所谓的“模式进化”问题,我相信它已经被证明没有通用的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2010-06-06 13:56:39

有一些工具可以帮助你,看看LiquiBase

这篇文章对developerworks进行了很好的概述

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2983117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档