.. Kenneth Lee 版权所有 2021
:Authors: Kenneth Lee :Version: 1.0 :Date: 2021-12-16 :Status: Draft
向前兼容数据格式设计
本文我们来设计一个模式。假定我们要设计一个文件格式,这个格式可以后向兼容,以便 本版本我们可以读到需要的信息,但新的软件版本仍可以利用这些信息,还可以得到新的 信息,同时,老的软件还使用新的格式,仍可以访问旧的数据。
我们看看这种模式的核心特征是什么。
我们先定义一下模型,假定我们现在设计的软件是S,文件格式定义为f,我们要求Sv1兼容 fv1, v2, v3,……Sv2也兼容fv1, fv2, fv3……。
Sv1需要数据集D1(D1是一组Name-value的组合,其中包括数据d1和o1,前者是必须的,后 者是可选的),Sv2需要数据集D2,D1/D2的交集不一定为空。
Sv1需要兼容fv2,所以D2中必须包含d1,其他不认识的忽略即可。Sv2要兼容fv1,最好直 接认识D1的所有数据(或者必须的数字)。
综合起来,实现这个模式的原则如下:
.. note::
从架构设计的角度说,原则1和4是地一个版本就必须完成设计的设计,其他是后续必须 坚持的设计。
这是一个架构设计是当下设计之外的独立设计的一个例子。