在编写代码时,我发现需要更改数据模型(例如,在类中添加/更改/删除数据成员)。当这些数据模型属于一个接口时,似乎很难在不破坏现有客户端代码的情况下进行更改。因此,我想知道是否有任何最佳实践来设计接口/数据模型,以最小化演变过程中的影响。
我能从google找到的最接近的东西就是数据合同版本控制。但这似乎是.net特有的话题。我想知道,同样的实践是否适用于Java世界,或者是否有不同的或通用的方法来处理数据模型演变。
谢谢
发布于 2010-06-06 13:36:22
无论是在Java领域还是在数据建模域中,都没有简单的答案。
另一点需要注意的是,当与数据模型对应的数据是持久的时,问题会变得更加困难,并且不能在数据模型更改时丢弃。这就是所谓的“模式进化”问题,我相信它已经被证明没有通用的解决方案。
发布于 2010-06-06 13:56:39
有一些工具可以帮助你,看看LiquiBase。
这篇文章对developerworks进行了很好的概述
https://stackoverflow.com/questions/2983117
复制相似问题