我理解模型 - 视图 - 展示器模式是一个好模式的一般原因。它将关注点分开,以便处理向用户呈现信息的相同代码部分不用担心计算等问题。我的问题是为什么我们需要一个基本上什么都不做的视图?所有观点都告诉演示者做好工作并从演示者那里获得结果。例如,在我的C#视图中,我经常只有一堆事件处理程序来调用在演示者中实现的委托。为什么不组合视图和演示者?由于视图没有任何问题,因此没有真正分开关注。
答案 0 :(得分:5)
两个重要的优点
我们可以轻松编写多个视图或替换视图(例如WinForms => WPF实现)
我们通过为单元测试创建测试视图来提高可测试性
答案 1 :(得分:3)
您的视图应该只是一种从用户那里获取数据的方法。任何与该功能无关的其他内容都应该下推到Presenter(或模型中,如果需要)。演示者处理视图获取的内容,但一旦获得视图,它就不应该关注视图。
演示者试图以更加语义的方式查看您的“UI”。您的视图中可能有2个文本框,但您的Presenter会看到名称和姓氏。我们的想法应该是,使用最少量的保险丝,您可以将视图从另一个视频中移开。
我不知道我对此有多赞同并且倾向于更喜欢没有Presenters的MVVM,而是使用ViewModel,我觉得这是定义上述抽象的更好方法。