我正在阅读维基百科(http://en.wikipedia.org/wiki/Object_pool)上的对象池模式,它提到了“危险的陈旧状态”。
究竟什么是“陈旧”状态?我知道状态是变量/数据,例如我的字段和属性,但陈旧或危险陈旧是什么意思?
我正在阅读维基百科(http://en.wikipedia.org/wiki/Object_pool)上的对象池模式,它提到了“危险的陈旧状态”。
究竟什么是“陈旧”状态?我知道状态是变量/数据,例如我的字段和属性,但陈旧或危险陈旧是什么意思?
陈旧状态是对象中不反映现实的信息。
示例:对象的成员填充了来自数据库的信息,但数据库中的基础数据在填充对象后发生了变化。
危险的陈旧状态是可能对程序的操作产生不利影响的陈旧状态,即由于对数据完整性的无效假设而导致程序不正确地执行。
当存储在对象中的值不再反映底层持久值时,就会发生这种情况。我想危险地陈旧只是一种说法,即价值真的过时了。
“陈旧状态”是指系统其余部分的对象存储(缓存)视图变得过时。例如,一个对象持有另一个对象的句柄,但同时第二个对象已被删除。
试图取消引用过时的句柄可能会导致大问题。
大多数系统会尝试自动保护您免受各种导致陈旧状态的原因,但并不总是能够涵盖所有情况。(取决于系统。)
拉里
基本上,这意味着无效状态。通常是不通知您的状态更改实例的副产品。