gwt - How to remove handlers from presenter in MVP pattern -


i implementing mvp pattern in gwt application. on each history token change, initialising presenter respective view. if user navigate single view gridview (say) 2 times respective presenter gridviewpresenter (say) initialized 2 times (according mvp pattern. if not make presenter singelton).

 presenter presenter = new gridviewpresenter(); 

in case events in presenter registerd , listen 2 times. how can avoid scenario without making our presenter singelton.

you'll have track presenters lifecycle (before switching new one, dispose current 1 unregisters handlers).

alternatively, use places & activities micro framework gwt, that: activity has explicit start , onstop , oncancel (when started asynchronously).
gwt-platform (an mvp framework gwt) has similar lifecycle.

another alternative not have presenter add handlers on view: view manages event handlers, , notifies presenter through contract expressed interface (the presenter implementing interface); , there can have 1 presenter @ time given view (that way, new presenter overwrites previous one).
managing presenters lifecycle has advantage presenters can garbage collected they're no longer used, rather waiting new presenter take place in singleton/long-lived view.


Comments