我一直想知道什么是以更多的OO方式处理取消按钮的最佳方式。在匆忙中,如果按钮被取消不了,那么我总是会对布尔表单属性进行难看的检查。最好的OO方式来处理“取消按钮”
事情就是这样使代码变得肮脏,在逻辑之间有很多“取消检查”。
我总是得到这样的:
void doLogic()
{
checkIfIsCancelled();
callOtherFunction();
checkIfIsCancelled();
callAnotherFunction();
checkIfIsCancelled();
callAnotherFunction();
checkIfIsCancelled();
callAnotherFunction();
}
我希望我是很清晰。我只想要一个更合适的方法来做到这一点:)
我不明白为什么工具包的知识或任何UI问题应该在这里重要。如果视图和模型正确分离出来,那么取消方法如何到达模型层就不再是问题。在你的例子中,回调只是一种将消息发送到模型的机制。模型如何接受来自视图的输入可以通过界面。如果我理解正确,问题是如何将基于状态的检查与默认逻辑流程分开。 – 2011-06-03 10:34:59