簡體   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