4
我有一个表示插件的视图类,以及伴随演示者类。我还拥有一个拥有该窗口小部件的窗口的视图类,以及窗口视图的伴随主持人。窗口操纵窗口小部件,所以我需要窗口呈现器与窗口小部件主持人进行通信。想象:模型/视图/主持人:主持人对演示者通信
+-------------+ +------------------+
| widget_view |<------>| widget_presenter |
+-------------+ +------------------+
^ ^
| |
| V
+-------------+ +------------------+
| window_view |<------>| window_presenter |
+-------------+ +------------------+
我不确定的是如何构造对象。我知道MVP架构并没有处理这个问题,而是“把它作为读者的练习”。事情我想:
- 的意见,构建自己的主持人,和
window_view
结构widget_view
。但是,window_view
在其构造函数中需要额外的参数,它不应该关心的参数,仅仅是实例化演示者。我也不确定window_presenter
将如何访问widget_presenter
。添加一个widget_presenter
setter到window_presenter
为window_view
填写不感觉对我来说是正确的。 - 消除两位演示者之间的通信线路。
window_presenter
与widget_presenter
通过window_view
对话。这对我来说也不太理想,因为它仅需要将代码添加到window_view
,仅用于window_presenter
和widget_presenter
之间的通信。它也只允许单向沟通,并且它还增加了胖子widget_view
以允许外人与其演示者进行交流。
我能想象的复杂性成倍增长这里作为window_presenter
需要跟其他主持人或其他演示需要另一些其它的主持人交谈。
我也想在这里加入了调解对象吸收所有这些互相通信和相关性,但在这一点从表现分离逻辑的整体思路开始感到非常昂贵的和非常复杂的。当然,我在这里做错了事。