繁体   English   中英

MVP模式中的“视图”是什么?

[英]What is the “View” in MVP pattern?

从一些教程中,我无法理解“视图”的含义。 更准确地说-我无法理解可以同时显示多少个视图? 在我阅读的教程中,一次只能显示1个视图,并且始终占据全屏。 例如,如果我需要显示弹出面板,通常是为此弹出面板创建新视图吗? 或更好地将此弹出面板包含到另一个视图中?

这完全取决于您使用的实现。

例如,一个ASP.NET MVC实现可能包含多个同时显示的局部视图(尽管只有一个主视图,即页面),而桌面应用程序可能管理多个打开的窗口,每个窗口都有自己的专用视图。 。 一个智能手机应用程序可能随时都只能打开一个活动视图...

您可以根据需要显示任意数量的视图,这与MVP模式无关。 从View的角度来看,MVP描述了Model-View-Presenter之间的关系,但是任何View都可以具有带有自己的演示者和绑定模型的子View。

常见的情况是-使用主视图在子视图集之间划分自己的空间/布局,每个子视图都有自己的Presenter并使用自己/共享的模型(取决于应用程序的具体情况和设计)。

从理论上讲,我认为View是模型的表示。 您可以从模型中进行一些数据转换和计算,从中提取数据并以一种不错的格式显示在视图中。

实际上,View是用户看到的一切。 JFrame(Java),Activity(Android),Windows窗体是视图的示例。

例如,如果我需要显示弹出面板,通常是为此弹出面板创建新视图吗? 或更好地将此弹出面板包含到另一个视图中?

如果将弹出窗口仅作为调用视图的一部分,则建议您保留该视图,以防出现弹出窗口。

PS另外,从概念上讲,您可以将视图视为UI组件树。 例如,在您的情况下,树可能包含两个UI组件。 让我们分别调用第一个ApplicationWindow和第二个(在弹出窗口中显示)PatientEditor。 PatientEditor是ApplicationWindow的子级,因此可以在同一视图(UI组件树)中显示它。

暂无
暂无

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

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