當我說「軟」事務時,我的意思是不涉及某些數據庫中的持久性,而只是邏輯對象修改。這是故事。在Java中回滾「軟」事務的方法
普通JAVA應用程序,沒有框架,可能很多線程。
- 對象鄂,在他的單獨的線程,開始DoSomething的()。在doSomething()中,這個對象成員和(可能)其他對象被修改。
- Ob的線程被一些事件處理程序中斷。有人想Ob to doSomethingElse()而不是doSomething()!
- Ob完成doSomething()並檢查他的線程是否被中斷。如果是的話,我想他:
一)完全撤消(回滾)DoSomething的(),
B)doSomethingElse()
,而無需微量元素DoSomething的提出任何具體變化() ,也因爲我可以爲每個對象有許多不同的doSomething方法。我沒有使用特定的框架,我想保持它「輕」,說。
有沒有辦法實現這樣的行爲?
非常感謝!
我不確定,但那可能需要有對象的防禦副本,以在編輯之前保存狀態。 – 2013-04-09 12:20:01
但是有一件事只是點了我,環境是多線程的。所以如果你試圖將對象恢復到以前的狀態,而另一個線程成功地改變了狀態,那麼該怎麼辦呢? – 2013-04-09 12:28:39