Я использую шаблон MVP из моего приложения GWT ниже приведенном здесь примере http://code.google.com/webtoolkit/doc/latest/tutorial/mvp-architecture.htmlНесвязанность Ведущих необходимая в GWT
У меня есть один MainPresenter и суб-презентер для каждого из панелей в MainView. Для того, чтобы показать новый суб-ведущий, я сделать что-то вроде этого:
presenter = new PresenterA(new ViewA(), ....);
presenter.go(panel) // presenter clears the panel and itself to the panel
Когда PresenterA
создан, он связывает себя события в ViewA
. Вопрос в том, как правильно перейти к новому ведущему? Прямо сейчас, я просто создание нового ведущего и присоединение его к той же панели, как это:
presenter = new PresenterB(new ViewB(), ....);
presenter.go(panel) // presenter clears the panel and itself to the panel
У меня есть некоторые сомнения по поводу такого подхода. Во-первых, я вызываю утечку памяти при переключении на новый ведущий? Я потерял и поле, которое ссылается на старого ведущего, и очистило его от панели, к которой она была прикреплена. Я полагаю, это означает, что нужно собрать мусор, но я не уверен. Во-вторых, что происходит с привязками событий, которые имел старый ведущий? Смогут ли эти привязки препятствовать тому, чтобы ведущий был собран мусором? Нужно ли сначала отпереть их?
Каков правильный способ управления ситуацией переключения презентаторов без утечек памяти и привязки к «мертвым» событиям.