问题标签 [passive-view]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Model-View-Presenter 模式中的 Presenter 是否应该处理视图上的多个“UI”元素?
我正在使用 WPF 中的 Model-View-Presenter (MVP) 模式实现图表/流程图类型设计器。
我经常认为这种模式(以及其他一些模式,例如 Passive View 和 MVVM)是无法解决富 UI 中涉及的一些复杂性的高级架构(这里是 SO 巨魔)。
在我的特定实例中,我有一个类似于以下模型的 UI:
我已经选择为每个需要设计器呈现逻辑的元素使用 Presenter 对象。到目前为止,这给我留下了以下设计师。
DesignerPresenter ControlPresenter ControlOverlayPresenter ConnectionPresenter ConnectionPointPresenter OverlayPresenter
我实现这些的原因是因为它们中的每一个都需要处理表示逻辑并将其操作分别传达给业务/域层,以避免膨胀(IMO)。
我会看到这样做的唯一另一种方法是,如果有一个演示者处理所有这些演示逻辑,这似乎很快就会失控。
我的问题如下:
- 是否经常看到为屏幕上的每个 UI 元素提供演示者,例如我正在这样做以允许分离演示逻辑?
- 创建的一些演示者在逻辑上是子演示者(ControlPresenter 是 DesignerPresenter 的子演示者)这正常吗?
- 这是否与另一种更有意义的模式一致?
winforms - 如何将依赖项注入 WinForms 中的 Presenter (MVP)?
我以前在 ASP.Net MVC 中编码,现在我有一个 WinForms 项目。我读到 MVP 模式最适合 WinForms。但是,我对如何将多个依赖项注入 Presenter 感到困惑。
例如,我需要加载一个名为“UserLoginView”的视图。演示者需要 3 个参数。
将依赖项注入演示者的正确方法是什么?
请我需要一个手,伙计们。谢谢你。
c# - 谁应该创建 UI 元素?
我有一个使用 MVP 的 WinForms 应用程序,但我不完全确定如何处理需要创建新 UI 元素的场景。
例如,假设我的视图有一个按钮,该按钮应该以对话框的形式打开一个新视图(表单)。视图或演示者应该创建新视图还是演示者的工作?
这是我的思考过程:
- 视图应将其创建为 UI 特定操作。但...
- 演示者应该这样做,因为视图应该是被动的。但是演示者不应该知道 UI 的细节。
解决这个问题的正确方法是什么?
android - 如何在 Android 应用程序中实现 MVP Passive View?
我最近开始构建一个 android 应用程序,我想从头开始使用设计模式。有人告诉我 MVP(Model-View-Presenter)是 android 应用程序的一个很好的模式。
我想知道是否可以实现 MVP 模式的“被动视图”变体?如果可以的话,我会显示任何代码.. 但现在我不知道被动视图在 android 应用程序中应该是什么样子。另外..在被动视图场景中哪个角色会扮演 MainActivity?
我将不胜感激有关如何实现被动视图的任何解释、教程或示例。
c# - 无法理解 MVP Winforms C# 中的被动视图
我正在尝试在 Winforms 应用程序中实现 MVP(被动视图)模式。
据我了解,在 MVP 的 Passive View 实现中,View 不知道 Presenter。所以我需要以某种方式与它交谈!我为此使用了事件。
现在这是我的问题!在 View 中触发 TextChanged 事件时,在我的 Presenter 中调用 OnSetName() 方法时会更改 FileName 字段!会不会出问题!我认为 MVP 中的 View 将保持完全被动!
假设我想在我的 Presenter 中有一个逻辑以避免接受特定的名称!但是当我到达 OnSetName() 方法时,我没有机会,因为它已经设置好了!
c# - 没有循环依赖的 C# MVP interpresenter 通信
演示者如何相互通信,例如 P 会在关闭之前调用 P2 打开其表单,然后 P2 会在关闭之前调用 P 打开其表单。
我通过简单地调用视图接口来做到这一点,但是如果视图被释放会发生什么,视图数据会发生什么?
还在 P 的表单上使用 dispose 而不是 hide 来节省资源...创建有关已处置对象的错误,我该如何解决?
c# - MVP 模式 - 在被动视图中填充列表和网格
假设我的演示者从我的存储库中获取了我的 Person 类的列表,并且我想将该列表中的信息绑定到被动视图中的 ListBox 或 DataGridView。
由于视图不应该知道模型,我假设我需要将该列表转换为我的演示者中的 List< 字符串 > 并将其传递给视图以绑定到 ListBox 是否正确?
如果我想填充 DataGridView,可能是 List<List< string >>,我应该将什么传递给视图?
是否可以接受专门为视图绑定的模型,演示者将模型从存储库转换为视图的不同模型?
示例人物模型: