我一直想知道什麼是以更多的OO方式處理取消按鈕的最佳方式。在匆忙中,如果按鈕被取消不了,那麼我總是會對布爾表單屬性進行難看的檢查。最好的OO方式來處理「取消按鈕」
事情就是這樣使代碼變得骯髒,在邏輯之間有很多「取消檢查」。
我總是得到這樣的:
void doLogic()
{
checkIfIsCancelled();
callOtherFunction();
checkIfIsCancelled();
callAnotherFunction();
checkIfIsCancelled();
callAnotherFunction();
checkIfIsCancelled();
callAnotherFunction();
}
我希望我是很清晰。我只想要一個更合適的方法來做到這一點:)
我不明白爲什麼工具包的知識或任何UI問題應該在這裏重要。如果視圖和模型正確分離出來,那麼取消方法如何到達模型層就不再是問題。在你的例子中,回調只是一種將消息發送到模型的機制。模型如何接受來自視圖的輸入可以通過界面。如果我理解正確,問題是如何將基於狀態的檢查與默認邏輯流程分開。 – 2011-06-03 10:34:59