在編寫代碼時,我發現需要更改數據模型(例如添加/更改/刪除類中的數據成員)。當這些數據模型屬於一個接口時,在不破壞現有客戶端代碼的情況下,似乎很難進行更改。所以我想知道是否有任何設計接口/數據模型的最佳實踐,以最小化進化過程中的影響。數據模型演變
我能從google找到的最接近的就是數據契約版本控制。但是這似乎是一個.net特定的主題。我想知道是否同樣的做法適用於Java世界,或者有不同的或通用的方式來處理數據模型的演變。
謝謝
在編寫代碼時,我發現需要更改數據模型(例如添加/更改/刪除類中的數據成員)。當這些數據模型屬於一個接口時,在不破壞現有客戶端代碼的情況下,似乎很難進行更改。所以我想知道是否有任何設計接口/數據模型的最佳實踐,以最小化進化過程中的影響。數據模型演變
我能從google找到的最接近的就是數據契約版本控制。但是這似乎是一個.net特定的主題。我想知道是否同樣的做法適用於Java世界,或者有不同的或通用的方式來處理數據模型的演變。
謝謝
在Java或數據建模領域沒有簡單的答案。
另一點需要注意的是,當數據模型對應的數據是持久性的,並且在數據模型更改時無法拋棄時,問題會變得更加困難。這被稱爲「模式演變」問題,我相信已經證明沒有通用的解決方案。
有一些工具可以幫助,看看LiquiBase。