2010-05-31 13 views
0

在我看來,像C#這樣的語言中的狀態控制得不到很好的支持。其他人認爲實例變量在數據庫支持的應用程序中有問題嗎?

這樣,我的意思是,這是留給高達程序員來管理內存中對象的狀態。一個常見的用例是域模型中的實例變量是駐留在永久存儲器(即數據庫)中的信息的副本。顯然,這違反了單一權限原則,「同步」必須由開發者管理。

我設想一個代替實例變量的系統,我們有簡單的public access/mutator方法,標記了將它們鏈接到數據庫的屬性,讀取和寫入由決定是否命中數據庫的框架調解。這樣的系統是否存在?

我是不是完全錯過了點,或者是有一些道理的想法?

回答

1

如果我正確理解你想要什麼:任何OR映射器與延遲加載這種方式工作。例如我使用Genome,那裏的每個實體都是一個純代理,並且您有很大的影響力來告訴OR-Mapper如何緩存這些字段。

0

實際上存在數據流行概念(由Java中的prevayler實現),其中內存中對象是數據的單一權限點(SPA)。

而且,一些對象數據庫(如db4o)模糊線對象表示和「存儲」表示之間的位。

在另一方面,通過將SPA的應用程序內的數據,你需要自己來處理交易和/或數據持久性。在事務性內存系統上做了一些工作,例如JVSTM(目前我的大學的信息系統正在使用),但它並沒有被廣泛使用。另一方面,如果數據存在於數據庫中,那麼當一切正常時(或者使用對數據庫中構建的事務的支持)就可以提交數據,並確保數據沒有被損壞或丟失。你交易的SPA原則爲更好的數據可靠性和交易(和使用一個單獨的數據存儲等優點)

相關問題