我有一个MVP(被动视图)设置,它进展顺利.我最近阅读了Martin Fowlers对此的描述(http://martinfowler.com/eaaDev/PassiveScreen.html),他写道"Passive View是一个非常明确的机制的另一个优点.很少依赖Observer机制或声明性映射."
在我的MVP中,我的模型完全忘记了演示者,从模型到演示者的通信由事件处理.我通过调用presenter ctor来初始化我的MVP,例如new Presenter(this,new Model())(这里指的是视图).
我的问题是,我应该让模型知道一个演示者,以便它可以直接调用演示者逻辑而不是使用事件吗?
我在C#Forms应用程序中实现了MVP模式(被动视图).
在我的例子中,该模型是一个电机控制器激光系统,其中模型实际上就像两个其他模型的外观(一个是电机控制系统,另一个是激光系统).
我的演示者是处理用户界面的视图的模型事件和方法的中介.
假设我的视图有激光功率的设置.用户将此值设置为某个值,该值将发送到演示者,演示者又将请求发送到模型.如果激光功率超出范围,我的模型会抛出一个由我的演示者捕获的错误.
如何最好地将此消息传达给用户?在我看来,我想过制作一种方法; HandleError(字符串消息),并从演示者调用此方法.
这是我使用MVP的第一个项目,所以我没有经验说出哪种方式是最好的方式.