在類庫我目前的工作,我需要實現一種機制,其中級用戶將通過在發行人類操作獲得一個項目的擱置:如何在C#中實現「問題並提交回」模式?
class Issuer {
public Item GetItem() {
return queue.Pop();
}
}
//at some other place
var item = issuer.GetItem();
//work on item and submit back to Issuer
我如何能實現這種模式,其最小化班級用戶甚至不願意提交回來的風險?
我的優先順序是:
- 類用戶不必明確提交該回
- 類用戶明確提交該回,但它無法脫身而不提交(例外???)
- 是可能的,即使僥倖沒有提交它回來,但設計鼓勵用戶不要做
我知道這是不是一個晶瑩剔透的問題,而是一個上面實施的建議/設計模式將會有所幫助!
謝謝。我喜歡使用Dispose模式的提示,但不幸的是,項目的使用可能會在多個方法中傳播。你的建議傾聽事件可能是有用的。我是否應該強制用戶實現一個有我可以聽到的事件的界面? – Hemant 2009-11-24 13:55:31
在Item上聲明一個事件,例如'Close'或'Released'(用戶調用'Close()'或'Release()'時調用)就足夠了。用戶不會被約束來執行任何操作。發行人會傾聽這些事件並*重新獲得對該項目的控制權*。 – 2009-11-24 13:58:50
我真的不知道爲什麼我堅持關閉和釋放;它可能很容易被Sumbit! – 2009-11-24 14:01:49