I have a presentation class that represents a widget and companion presenter class. I also have a view class for a window that has a widget, and an accompanying presenter for the window. A window controls widgets, so I need the window presenter to communicate with the widget presenter. To visualize:
+-------------+ +------------------+ | widget_view |<------>| widget_presenter | +-------------+ +------------------+ ^ ^ | | | V +-------------+ +------------------+ | window_view |<------>| window_presenter | +-------------+ +------------------+
I am not sure how to build objects. I know that MVP architecture does not address this problem, but "leaves it as an exercise for the reader." Things I tried:
- Views build their presenters, and
window_view
builds widget_view
. But then window_view
needs additional parameters in its constructors, parameters that it should not care about, just to create an instance of the master. I also don't know how window_presenter
will access widget_presenter
. Adding the widget_presenter
installer to window_presenter
for window_view
to populate doesn't look like me. - Remove the link between the two hosts.
window_presenter
talks to widget_presenter
through window_view
. This also does not seem ideal for me, because to add window_view
window_presenter
widget_presenter
. , widget_view
, .
window_view
window_presenter
widget_presenter
. , widget_view
, .
I can imagine that complexity growing exponentially here, like window_presenter
, should talk to other presenters, or other presenters should talk to other presenters.
I also thought about adding a mediator object here to absorb all these connections and dependencies, but at the moment the whole idea of the logic branch from the presentation is starting to feel very expensive and very difficult. Of course I'm doing something wrong.
source share