我对应该如何从子组件向用户发送消息(如在 MessageBox 中)感到困惑。假设我有这样的代码:
class Model
{
public void somethingToDo()
{
SomethingElse aSubComponent = new SomethingElse();
aSubComponent.doSomethingThatCanError();
}
}
class SomethingElse
{
public void doSomethingThatCanError()
{
if(/* Everything is fine */ )
{
DoWhatWeAreSupposedToDo();
}
else
{
ShowAnErrorMessageBoxSomehow();
}
}
}
如果错误只是在模型中,我解决此问题的一种方法是引发 Presenter 侦听的消息,然后从那里在视图上运行某些内容以显示消息框。当可能出错的代码在另一个类中时,我可以想到几种方法(例如从该子组件转发事件),但这似乎很混乱。
我也可以使用异常,但这真的是正确的方法吗?
从 MVP 中模型的子组件向视图上的用户显示消息的适当方式是什么?