2010-10-18 66 views
2

我正在使用Moose在Perl中編寫一些對象模塊。我使用store創建對象的實例,然後使用它們。我應該如何在Perl中維護我的對象模塊?

我的對象數據的基本表示保持不變,但我不時添加更多功能 - 例如,類方法或對象方法。

我可以繼續使用我的存儲對象,這是使用該模塊的早期版本創建的,具有新功能嗎?或者我每次更換模塊時都必須重新創建對象?

開發一個對象模塊的基本數據結構不會改變但功能性的常見範例是什麼?

回答

2

只要數據結構沒有改變,你應該沒問題:數據被篡改並且重載到你的類的名字空間中:這確保了新數據的方法可用。

請注意改變數據結構!

雖然對於某些用途,您可以使用數據庫來存儲數據,並使用衆多ORM之一以OO方式訪問它(DBIx :: Class,Fey: :ORM或其中任何一個)。

+0

基於駝鹿的對象的數據結構很少改變。他們通常是一個散列,並將保持散列。當你在班級版本中刪除鍵(屬性槽)時,你只會真的陷入麻煩。 – perigrin 2010-10-18 20:55:39

+0

因此,當我序列化Moose對象時(例如使用'nstore'),只有數據(即屬性)實際上被序列化了,對嗎? – 2010-10-22 16:04:51

+0

對大多數商店來說,是的。 – mfontani 2010-10-22 22:48:43

1

KiokuDB漩渦。這可能正是你想要的;根據連接的部位:

KiokuDB是基於駝鹿面向對象持久前端爲多個存儲後端的。」

1

我第二對於看着KiokuDB的建議。

除了將Moose對象透明序列化到圖形庫之外,它還具有處理Class版本之間轉換的工具。實際上,您可以定義一個翻譯例程,以便從您的課程的版本0.1到0.2,並將遷移交給它。 KiokuDB將執行此例程並允許您重新存儲結果。

相關問題