实体对象的状态设计
1:实体对象类图:
2: 实体对象状态图:
3:描述
对于需要持久化的实体对象,在它的生命周期中可处于以下4个状态或混合状态中。
Ø 临时状态(isNew): 刚刚用new 语句创建,还没有被持久化 (isNew = true, isDirty = false, isLoaded = false, isDeleted=false)。
Ø “脏”状态(isDirty):
ü 编辑处于临时状态的实体对象(isNew = true, isDirty = true, isLoaded = false, isDeleted=false))
ü 编辑处于持久化状态的实体对象(isNew = false, isDirty = true, isLoaded = false, isDeleted=false
Ø 持久化状态(isNew=false,isDeleted=false):
ü 用Load方法加载的对象(isNew = false, isDirty = true, isLoaded = true, isDeleted=false))
ü 把临时状态的对象通过Insert/Save/Update方法进行保存(isNew = false, isDirty = false, isLoaded = false, isDeleted=false)
ü 把持久化状态的对象通过Save/Update方法进行保存(isNew = false, isDirty = false, isLoaded = false, isDeleted=false)
Ø 游离状态(isDeleted):调用对象的Delete方法已经从数据库中把对应的记录移除(isDeleted=true,处于游历状态的对象是不能够再进行CRUD操作了,否则系统会抛出一个不能对游历态对象操作的异常)
4: 问题描述
以上是NDO Framwork 中关于实体对象的状态设计图,希望大家帮我看看指出其中的不足。另外有一个困惑我了一下午的问题: 把一个实体对象对应的数据库记录删除后则该对象处于游离态还是出于临时状态,如果是出于临时状态的话那么游离态就没有存在的必要性,希望就这个问题听听大家的看法。