什么是陈旧状态?

时间:2009-10-13 22:35:32

标签: design-patterns staleobjectstate

我正在阅读维基百科上的对象池模式(http://en.wikipedia.org/wiki/Object_pool),并提到“危险的陈旧状态”。

究竟什么是“陈旧”状态?我知道状态是变量/数据,例如我的字段和属性,但它陈旧或危险陈旧是什么意思?

4 个答案:

答案 0 :(得分:31)

陈旧状态是对象中不反映现实的信息。

示例:对象的成员填充了数据库中的信息,但自对象填充后,数据库中的基础数据已更改。

危险陈旧状态是陈旧状态,可能会对程序的运行产生负面影响,即由于对数据完整性的无效假设而导致程序执行不正确。

答案 1 :(得分:3)

当存储在对象中的值不再反映基础持久值时,就会发生这种情况。我觉得危险的陈旧只是说这个价值真的过时了。

答案 2 :(得分:1)

“陈旧状态”是指对象的系统其余部分的存储(缓存)视图变得过时。例如,一个对象持有一个其他对象的句柄,但同时删除了第二个对象。

尝试取消引用过时的句柄会导致很大的问题。

大多数系统会尝试自动保护您免受各种原因导致的陈旧状态,但并不总是能够涵盖所有情况。 (取决于系统。)

拉​​里

答案 3 :(得分:0)

基本上,它表示无效状态。通常是不通知您的状态变化情况的副产品。