该模式主要考虑的问题是:class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库的数据读入内存后的数据对象c;被改变后在什么时机提交。一般而言c;可以有两种提交方式c;即时提交和择机提交。
(1)即时提交:当对象改变的时候马上提交到class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库。这样的好处是不需要维护一个受影响对象的列表c;但是会导致class="tags" href="/tags/ShuJuKu.html" title=数据库>数据库的连接操作过多c;影响性能。而且c;它对性能的影响会导致系统响应变慢。
对象变化的记录可以考虑以下3种方法:
a,调用者注册c;数据对象用isDirty的标识c;调用者改变数据对象后c;将该标识置为True。
b,对象注册c;对象的每个Setting方法都会自动将isDirty的标识置为True。
c,拷贝对象:(1)读操作时拷贝c;在提交的时候比较当前对象与拷贝对象c;看对象是否发生了改变。(2)写操作时拷贝c;一旦对象发生写操作c;拷贝对象c;提交时把所有对象直接提交即可
提交时机也可以考虑以下方法:
a,定时提交,使用定时器c;隔固定时间提交一次。
b,修改累积到一定量的时候提交c;设置一个受影响对象个数的阈值c;当达到阈值的时候提交。