我有一些乐趣,试图让我的头在一些MVP stuf,因为它涉及到用户控件。我正在使用.NET WinForms(或与之相近的东西)和Supervising Controller模式(嗯,我想我是:)。MVP和UserControls和调用
用户控件本身是MVP应用程序的一部分(其视图和关联的Presenter等)。演示者始终首先启动,然后启动模型然后查看视图。该视图建立其用户界面,其中的一部分将是新的UC,这是视图。
现在,(表单)演示者需要了解UC Presenter,但我认为它不知道视图是如何组成的。举例来说,Presenter并不知道UC是表单控件集合的一部分,也不应该。
此外,设计经验不应改变; IOW View(窗体)的开发者应该能够从工具箱中选择一个用户控件并将其放在窗体上。
所以,在我的问题。首先,我的假设是否正确?有点误导?弄乱? WTF你在想什么?
其次,是否有正确的(足够?)使窗体视图调用UC视图,并且窗体Presenter调用UC Presenter并且有一些机制来告诉UC View它的Presenter是什么?这打破了我的“演示者第一”规则,但我不知道该怎么做。
任何其他的想法,建议,评论欣然接受。
- nwahmaet
我同意所有的UC都是特定于实现的视图,但是也认为他们需要他们自己的演示者或模型,具体取决于UC的意图。导航面板可能具有Presenter逻辑而不是模型;一个邮政编码肯定查找需要一个模型。 – nwahmaet 2009-01-20 16:36:35
我明白你的观点。我的感觉是,尽可能避免将自定义控件绑定到模型上。像这样绑定到您的应用程序体系结构中的控件我称之为“胖”控件。它们就像迷你的子窗户一样,在保持设计清洁/简单的同时很难处理。 – 2009-01-22 15:29:58