我正在使用 WPF 中的 Model-View-Presenter (MVP) 模式实现图表/流程图类型设计器。
我经常认为这种模式(以及其他一些模式,例如 Passive View 和 MVVM)是无法解决富 UI 中涉及的一些复杂性的高级架构(这里是 SO 巨魔)。
在我的特定实例中,我有一个类似于以下模型的 UI:
我已经选择为每个需要设计器呈现逻辑的元素使用 Presenter 对象。到目前为止,这给我留下了以下设计师。
DesignerPresenter ControlPresenter ControlOverlayPresenter ConnectionPresenter ConnectionPointPresenter OverlayPresenter
我实现这些的原因是因为它们中的每一个都需要处理表示逻辑并将其操作分别传达给业务/域层,以避免膨胀(IMO)。
我会看到这样做的唯一另一种方法是,如果有一个演示者处理所有这些演示逻辑,这似乎很快就会失控。
我的问题如下:
- 是否经常看到为屏幕上的每个 UI 元素提供演示者,例如我正在这样做以允许分离演示逻辑?
- 创建的一些演示者在逻辑上是子演示者(ControlPresenter 是 DesignerPresenter 的子演示者)这正常吗?
- 这是否与另一种更有意义的模式一致?