2010-05-31 21 views
0

在我看来,像C#这样的语言中的状态控制得不到很好的支持。其他人认为实例变量在数据库支持的应用程序中有问题吗?

这样,我的意思是,这是留给高达程序员来管理内存中对象的状态。一个常见的用例是域模型中的实例变量是驻留在永久存储器(即数据库)中的信息的副本。显然,这违反了单一权限原则,“同步”必须由开发者管理。

我设想一个代替实例变量的系统,我们有简单的public access/mutator方法,标记了将它们链接到数据库的属性,读取和写入由决定是否命中数据库的框架调解。这样的系统是否存在?

我是不是完全错过了点,或者是有一些道理的想法?

回答

1

如果我正确理解你想要什么:任何OR映射器与延迟加载这种方式工作。例如我使用Genome,那里的每个实体都是一个纯代理,并且您有很大的影响力来告诉OR-Mapper如何缓存这些字段。

0

实际上存在数据流行概念(由Java中的prevayler实现),其中内存中对象是数据的单一权限点(SPA)。

而且,一些对象数据库(如db4o)模糊线对象表示和“存储”表示之间的位。

在另一方面,通过将SPA的应用程序内的数据,你需要自己来处理交易和/或数据持久性。在事务性内存系统上做了一些工作,例如JVSTM(目前我的大学的信息系统正在使用),但它并没有被广泛使用。另一方面,如果数据存在于数据库中,那么当一切正常时(或者使用对数据库中构建的事务的支持)就可以提交数据,并确保数据没有被损坏或丢失。你交易的SPA原则为更好的数据可靠性和交易(和使用一个单独的数据存储等优点)

相关问题