GWT-RPC и неизменяемые объекты переноса - PullRequest
4 голосов
/ 27 мая 2011

GWT-RPC требует, чтобы передаваемые объекты были сериализованы должен иметь конструктор по умолчанию (без аргументов) . Аналогично, окончательные поля не будут сериализованы (см. Выпуск 1054 ).

С другой стороны, я знаю, что должен "минимизировать изменчивость". Моя тенденция состоит в том, чтобы мои TO были неизменными, с конечными полями, без конструктора по умолчанию и без мутаторов.

Как я могу использовать GWT-RPC, максимально соблюдая неизменную парадигму. Нужно ли конвертировать в изменяемый объект маршалл, а затем обратно в неизменный? Это даже стоит?

1 Ответ

4 голосов
/ 27 мая 2011

Элемент 13 в Эффективная Java (пункт 15 во втором издании) дает стратегии о том, как минимизировать изменчивость или способствовать неизменности.

Предположим, что мы удаляем мутаторы, но сохраняем неконечные поля иконструктор по умолчанию.Эффект будет теоретически изменяемым объектом, но практически неизменным.Да, можно изменить объект с помощью отражения с небольшим усилием, но просто закрыв открытые методы, мы можем, по крайней мере, препятствовать изменению объекта в таких случаях, когда практически невозможно сделать объект действительно неизменным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...