提示。在Ruby中对类进行版本控制
Jan 13, 2015
版本化类并不难,特别是如果你使用的是现代编程语言。使用Reflection和Builder模式的具体实现,你就可以了。
但为什么要对类进行版本控制呢?类的版本控制背后的原因总是关于向后兼容,在大多数情况下,类的实例实际上代表了某种严格格式的数据,这意味着输出的数据必须以某种方式格式化,如果你想让它有意义的话,例如一个CSV文件代表了关系数据库中一个表的备份。
在Ruby中,对类进行版本控制是相对简单的,请看下面这个类的例子,在这种情况下,我们假设我们想让这个类的实例生成一个CSV文件(我省略了适当的quouting之类的东西,所以这基本上是为了给你一个真实的例子的概念)。
这个类定义了一些方法,允许我们指示类的版本,并包括一个新的类方法来明确指示元素的类型、长度和是否需要该值,类似于著名的attr_accessor。
像这样对该类进行子类化。
将允许得到一个类似于下一个的输出。
这个实现最酷的地方是,你可以不断地子类化最新的版本,而且列的顺序仍然是合理的。假设你忘记了年龄,你需要一个新的类,你会做这样的事情。
和前面的例子类似,输出结果会是这样。
很明显,我漏掉了生成器,所以例如这样。
会更有意义。
最后,如果你必须要有明确格式的数据,所有这些都是有用的,如果你使用NoSQL数据库,所有这些都没有意义,但仍然是很好的了解。