繁体   English   中英

模型-视图-带有虚拟网格的演示者

[英]Model - View - Presenter with Virtual Grid

在Winforms应用程序中使用虚拟网格和MVP模式时,最好的职责分解是什么。

包含:

  1. 在用户更改单元格更新时从网格获取回调
  2. 从网格进行回调以设置给定行和列的单元格的样式和值

在称为“模型-视图-演示器”的许多模式中,确切的职责有所不同。 主要是,他们在演示者对视图的控制权上有多少不同。 Martin Fowler在其关于GUI体系结构的章节中对许多不同的变体进行了深入的讨论,非常值得一读。

深入了解Presenter First,因为它涉及适配器和职责。

被动视图监督控制器都值得研究。

模型(或领域模型)==系统中涉及实体的逻辑表示,包括它们的状态和行为

presenter ==侦听视图(可能是模型)中的事件并处理这些请求,将模型类型转换为视图类型(被动视图),这确实使视图和模型彼此隐藏起来。 对用户的刺激做出反应。

视图==表示形式:用户可以与之交互的模型的可视表示形式,收集用户输入

有关回调和获取网格单元格样式的特定问题都将涉及到网格中的视图处理事件,并将事件引发回呈现给演示者以请求操作或从模型中检索数据。 当单元格内容更新时,这非常适合回调(需要将其发布给演示者,以便演示者可以验证模型中的更改并进行模型更改)。
对于网格单元格样式,我认为视图中的某种适配器可能需要将模型的状态(通过事件从视图到演示者检索)转换为网格单元格样式信息。 这可能会在演示者中发生,但是我个人希望演示者不了解视图中的小部件。

如果我对您的理解正确,那么网格是视图实现的一部分,并且对演示者不可见。 在这种情况下,演示者不需要知道如何显示数据,而只需知道如何提供它们。

我可能会创建一个帮助程序类,它是某种与网格通信的适配器。 网格只能看到该帮助程序,而该视图也一样。

协作将类似于:

网格<-助手<-查看<->演示者

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM