繁体   English   中英

Model-View-Presenter模式中的Presenter是否应该在视图上处理多个“ UI”元素?

[英]Should a Presenter in the Model-View-Presenter pattern handle multiple 'UI' elements on a View?

我正在使用WPF中的Model-View-Presenter(MVP)模式实现图/流程图类型设计器。

我经常将这种模式(以及其他一些模式,例如Passive View和MVVM)视为高级架构,无法解决富UI所涉及的某些复杂性(SO巨魔在这里)。

在我的特定实例中,我有一个类似于以下模型的UI:

在此处输入图片说明

我已经选择对每个元素都使用Presenter对象,这需要设计器上的演示逻辑。 到目前为止,这已使我离开了以下设计师。

DesignerPresenter ControlPresenter ControlOverlayPresenter ConnectionPresenter ConnectionPointPresenter OverlayPresenter

之所以实现这些功能,是因为它们每个都需要处理表示逻辑并将其动作分别传达给业务/域层,以避免膨胀(IMO)。

我看到的唯一的另一种方式是,如果有一个演示者来处理所有这些演示逻辑,那似乎很快就会失去控制。

我的问题如下:

  1. 像我正在做的那样,为了允许分离演示逻辑,在屏幕上看到为每个UI元素提供演示者是否很常见?
  2. 从逻辑上讲,创建的一些演示者是子演示者(ControlPresenter是DesignerPresenter的子演示者)这正常吗?
  3. 这是否与另一个更有意义的模式保持一致?

我从没使用过MVP,但是我对MVVM模式非常满意,如果我将Viewer替换为Presenter一词,那么设计就可以满足我的实际需求。

DesignerPresenter具有ControlPresenter的ObservableCollection,并且ControlPresenter包含ConnectionPresenter的ObservableCollection是完全正常的。 ConnectionPresenter可能也将具有两个ConnectionPointPresenter。

总体设计似乎还可以,但可能还有其他类似的体系结构也适用。 恕我直言,也许有太多的分离。 分离连接和连接点是否有意义?

暂无
暂无

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

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