estoy usando el patrón MVP de mi aplicación GWT siguiendo el ejemplo dado aquí http://code.google.com/webtoolkit/doc/latest/tutorial/mvp-architecture.htmlpresentadores compromiso.Por necesarias en GWT
que tienen un solo MainPresenter y sub-presentador para cada uno de los paneles de la MainView. Para mostrar un nuevo sub-presentador, hago algo como esto:
presenter = new PresenterA(new ViewA(), ....);
presenter.go(panel) // presenter clears the panel and itself to the panel
Cuando se crea PresenterA
, que se obliga a los acontecimientos en el ViewA
. Mi pregunta es ¿cuál es la forma correcta de cambiar a un nuevo presentador? En este momento, estoy simplemente creando un nuevo presentador y lo conecta con el mismo panel de la siguiente manera:
presenter = new PresenterB(new ViewB(), ....);
presenter.go(panel) // presenter clears the panel and itself to the panel
tengo algunas dudas sobre este enfoque. En primer lugar, ¿estoy causando una pérdida de memoria cuando cambio al nuevo presentador? Perdí el campo que hace referencia al viejo presentador y lo borré del panel al que estaba adjunto. Supongo que esto significa que debería ser basura, pero no estoy seguro. En segundo lugar, ¿qué sucede con las vinculaciones de eventos que tenía el presentador anterior? ¿Estas fijaciones evitarán que el presentador sea recogido basura? ¿Debo desvincularlos primero?
¿Cuál es la forma correcta en que se maneja la situación del cambio de presentadores sin pérdida de memoria y vinculación a eventos "muertos"?