1

我正在使用 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. 这是否与另一种更有意义的模式一致?
4

1 回答 1

1

我从未使用过 MVP,但我对 MVVM 模式非常满意,如果我用 ViewModel 替换 Presenter 这个词,则设计符合我真正想做的。

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

整体设计看起来不错,但可能还有其他类似的架构也适合。恕我直言,也许分离太多了。将连接和连接点分开是否有意义?

于 2014-09-23T06:57:31.523 回答