2014-09-23 103 views
1

我正在WPF中实现使用模型 - 视图 - 演示者(MVP)模式的图/流程图类型设计器。我经常使用这种模式(以及其他一些如Passive View和MVVM)作为高级架构,无法解决富UI(这里是SO巨魔)所涉及的一些复杂问题。模型 - 视图 - 演示者模式中的演示者是否应处理视图上的多个“UI”元素?

在我的特定情况下,我有类似以下样机的UI:

enter image description here

我已经使用演示对象为需要设计者表示逻辑每个元素的选择。到目前为止,这给我留下了以下设计师。

DesignerPresenter ControlPresenter ControlOverlayPresenter ConnectionPresenter ConnectionPointPresenter OverlayPresenter

我已经实现了每一种原因是因为他们每个人都需要处理表示逻辑和顺序分别传达其行动业务/域层避免臃肿(IMO)。

唯一的其他方式,我会看到这样做是如果有一个主持人来处理所有这一切似乎将失控,很快这表示逻辑。

我的问题(一个或多个)如下:

  1. 是不是经常可以看到为每个UI元素的屏幕,例如我为了允许表示逻辑分离是做演示者?
  2. 创建的一些演示者是逻辑上的小孩演示者(ControlPresenter是DesignerPresenter的小孩演示者)这是正常的吗?
  3. 这是否与另一种更有意义的模式保持一致?

回答

1

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

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

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

相关问题