工作单元模式是一种对象-关系行为模式。其定义如下:维护受业务影响的对象列表,并协调变化和并发问题的解决。
该模式主要考虑的问题是:数据库的数据读入内存后的数据对象,被改变后在什么时机提交。一般而言,可以有两种提交方式,即时提交和择机提交。
(1)即时提交:当对象改变的时候马上提交到数据库。这样的好处是不需要维护一个受影响对象的列表,但是会导致数据库的连接操作过多,影响性能。而且,它对性能的影响会导致系统响应变慢。
(2)用工作单元保存对象的变化,择机提交。 择机提交需要考虑两方面的事情,对象变化的记录与提交时机。
对象变化的记录可以考虑以下3种方法:
a,调用者注册,数据对象用isDirty的标识,调用者改变数据对象后,将该标识置为True。
b,对象注册,对象的每个Setting方法都会自动将isDirty的标识置为True。
c,拷贝对象:(1)读操作时拷贝,在提交的时候比较当前对象与拷贝对象,看对象是否发生了改变。(2)写操作时拷贝,一旦对象发生写操作,拷贝对象,提交时把所有对象直接提交即可
提交时机也可以考虑以下方法:
a,定时提交,使用定时器,隔固定时间提交一次。
b,修改累积到一定量的时候提交,设置一个受影响对象个数的阈值,当达到阈值的时候提交。
c,退出时提交,退出系统是提交修改。
原文链接:http://blog.csdn.net/luoxinwu123/article/details/8043042