我应该如何在Perl中维护我的对象模块?

时间:2010-10-18 09:39:34

标签: perl object module backwards-compatibility moose

我正在使用Moose在Perl中编写一些对象模块。我使用store创建对象的实例然后使用它们。

我的对象数据的基本表示保持不变,但我不时会添加更多功能 - 例如类方法或对象方法。

我可以继续使用我的存储对象(使用早期版本的模块创建)和新功能吗?或者我每次更换模块时都必须再次创建对象吗?

开发对象模块的常见范例是什么,其中基本数据结构不会改变,但功能却没有?

3 个答案:

答案 0 :(得分:2)

只要数据结构没有改变,你就应该没问题:数据被混淆并重新加入你的类命名空间:这确保了对这些数据可用的新方法。

请注意改变数据结构!

我没有看到它有多大的错误,虽然对于某些用途,您可以使用数据库来存储您的数据,并使用众多ORM之一以OO方式访问它(DBIx :: Class,Fey :: ORM或其中任何一个。)

答案 1 :(得分:1)

KiokuDB一个旋转。它可能正是你想要的;根据网站链接:

KiokuDB是一个基于Moose的面向对象的持久性前端,用于许多存储后端。

答案 2 :(得分:1)

我是第二个关于查看KiokuDB的建议。

除了将Moose对象透明地序列化到图形存储之外,它还具有处理类版本之间转换的工具。实际上,您可以将翻译例程定义为从类的0.1到0.2版本,并将迁移移交给它。 KiokuDB将执行此例程并允许您重新存储结果。