我正在使用Moose在Perl中编写一些对象模块。我使用store
创建对象的实例然后使用它们。
我的对象数据的基本表示保持不变,但我不时会添加更多功能 - 例如类方法或对象方法。
我可以继续使用我的存储对象(使用早期版本的模块创建)和新功能吗?或者我每次更换模块时都必须再次创建对象吗?
开发对象模块的常见范例是什么,其中基本数据结构不会改变,但功能却没有?
答案 0 :(得分:2)
只要数据结构没有改变,你就应该没问题:数据被混淆并重新加入你的类命名空间:这确保了对这些数据可用的新方法。
请注意改变数据结构!
我没有看到它有多大的错误,虽然对于某些用途,您可以使用数据库来存储您的数据,并使用众多ORM之一以OO方式访问它(DBIx :: Class,Fey :: ORM或其中任何一个。)
答案 1 :(得分:1)
给KiokuDB一个旋转。它可能正是你想要的;根据网站链接:
“ KiokuDB是一个基于Moose的面向对象的持久性前端,用于许多存储后端。”
答案 2 :(得分:1)
我是第二个关于查看KiokuDB的建议。
除了将Moose对象透明地序列化到图形存储之外,它还具有处理类版本之间转换的工具。实际上,您可以将翻译例程定义为从类的0.1到0.2版本,并将迁移移交给它。 KiokuDB将执行此例程并允许您重新存储结果。