提示。在Ruby中对类进行版本管理

66 阅读2分钟

提示。在Ruby中对类进行版本控制

Jan 13, 2015

版本化类并不难,特别是如果你使用的是现代编程语言。使用ReflectionBuilder模式的具体实现,你就可以了。

但为什么要对类进行版本控制呢?类的版本控制背后的原因总是关于向后兼容,在大多数情况下,类的实例实际上代表了某种严格格式的数据,这意味着输出的数据必须以某种方式格式化,如果你想让它有意义的话,例如一个CSV文件代表了关系数据库中一个表的备份。

在Ruby中,对类进行版本控制是相对简单的,请看下面这个类的例子,在这种情况下,我们假设我们想让这个类的实例生成一个CSV文件(我省略了适当的quouting之类的东西,所以这基本上是为了给你一个真实的例子的概念)。

这个类定义了一些方法,允许我们指示类的版本,并包括一个新的类方法来明确指示元素的类型、长度和是否需要该值,类似于著名的attr_accessor

像这样对该类进行子类化。

将允许得到一个类似于下一个的输出。

这个实现最酷的地方是,你可以不断地子类化最新的版本,而且列的顺序仍然是合理的。假设你忘记了年龄,你需要一个新的类,你会做这样的事情。

和前面的例子类似,输出结果会是这样。

很明显,我漏掉了生成器,所以例如这样。

会更有意义。

最后,如果你必须要有明确格式的数据,所有这些都是有用的,如果你使用NoSQL数据库,所有这些都没有意义,但仍然是很好的了解。

回到帖子