在遵循MVP或MVC设计模式时遇到问题(适用于任何一种)。我想不出如何干净利落地提示用户从模型层输入?根据模型中的某些值,我可能需要在流程的中间提示用户输入。
例如,我们将采用一个假设的PO输入流程。比方说,当用户点击视图中的一个按钮后,它调用presenter,传入视图中的PO详细信息。然后,演示者调用模型以验证新PO并将其插入到PO集合中。模型中的验证检查之一是确保尚未输入具有相同项目的另一个PO。如果有,应用程序需要提示用户确认PO不是重复的。这款应用程序目前深入到了模型中。我如何一直返回到视图以检索操作员输入,然后返回到它停止的模型代码以完成PO输入流程?
发布于 2009-06-17 00:43:41
在paper I read on presenter first中,建议展示者对模型和视图具有依赖性,并订阅来自模型和视图的事件。
这意味着您可以在处理无法继续的情况下从模型中引发事件。展示者将通过调用视图上的某些方法来处理模型中的事件(这将提示用户)。然后,模型上方法的返回值将返回给模型(事件的输入/输出参数,就像.NET使用的EventArguments子类一样)。
发布于 2009-06-17 04:59:48
您可能希望查看模型和UI模式的其他组件之间的某种形式的通知交互。
Martin Fowler在here上写道。
至于深入模型,获取用户输入,然后返回到模型:不要这样做。控制器负责修改模型,并且应该在尝试更改模型之前进行验证。这可能需要将验证与更新代码分开。
https://stackoverflow.com/questions/1004548
复制相似问题