Sto utilizzando il modello MVP dalla mia applicazione GWT seguendo l'esempio dato qui http://code.google.com/webtoolkit/doc/latest/tutorial/mvp-architecture.htmlpresentatori non impegnativa necessarie GWT
Ho un singolo MainPresenter e sub-presentatore per ciascuno dei pannelli del MainView. Per mostrare una nuova sotto-presentatore, faccio qualcosa di simile:
presenter = new PresenterA(new ViewA(), ....);
presenter.go(panel) // presenter clears the panel and itself to the panel
Quando si crea PresenterA
, essa si impegna a eventi nel ViewA
. La mia domanda è qual è il modo corretto per passare a un nuovo presentatore? In questo momento, sto semplicemente creando un nuovo presentatore e di collegarlo alla stesso pannello come questo:
presenter = new PresenterB(new ViewB(), ....);
presenter.go(panel) // presenter clears the panel and itself to the panel
ho qualche dubbio su questo approccio. Per prima cosa, sto causando una perdita di memoria quando passo al nuovo presentatore? Ho perso entrambi il campo che fa riferimento al vecchio presentatore e lo ho cancellato dal pannello a cui era collegato. Suppongo che questo significhi che dovrebbe essere raccolta della spazzatura, ma non ne sono sicuro. In secondo luogo, che cosa succede alle associazioni degli eventi che il vecchio presentatore aveva? Questi legami impediranno al relatore di essere raccolto dalla spazzatura? Ho bisogno di separarli prima?
Qual è il modo corretto per gestire la situazione dei relatori senza perdite di memoria e il collegamento a eventi "morti".