Вы правы, почти всегда ведущий - единственный парень, который держит модель и управляет ее временем жизни. Модель из предыдущих версий GWT просто была DTO, (и продолжает оставаться) POJO, которые создаются десериализатором GWT при возврате методов RPC или создаются Presenters и заполняются данными пользовательского интерфейса UIHandlers, и отправлено на сервер.
Я предпринял усилия, чтобы сохранить время жизни Моделей в рамках срока действия Деятельности и избежать сохранения состояния вне действий. (Однако у меня есть одноэтапное глобальное состояние, поддерживаемое для использования из любого места приложения.) Я думаю, это то, что инженеры GWT MVP предполагали, что это произойдет - имеет смысл, когда, скажем, пользователь ушел из Места для моделей, связанных с этим местом, также для утилизации (и сбора). Создавайте модели, заполняйте их внутри действий и выполняйте сервисные вызовы, чтобы обновить сервер перед тем, как уйти (или вызванный каким-либо элементом управления на странице), и позволить им выполнять действия - это то, чем я занимался до настоящего времени.
Более крупный проект, в котором я принимал участие, столкнулся с довольно большим количеством проблем с памятью браузера, и все они были связаны с объектами, которые связаны с другим (в данный момент не просматриваемым) местом в памяти. Было трудно отследить и удалить ссылки на эти объекты, и поскольку пользователь ушел с экрана - вопрос «, почему мои старые экранные объекты все еще находятся в памяти? », часто возникал и впоследствии исправлялся , Вот почему, заранее, я решил сохранить время жизни Модели в рамках срока действия Деятельности в моем текущем домашнем проекте.
Если у вас есть модели, которые охватывают (которые заполнены / доступны) нескольким действиям (как в случае, если у вас есть боковые панели и виджеты мастер / контейнер), возможно, потребуется некоторая редизайн моделей, если у вас есть примеры, я буду попробуй и помоги.