Чистый код, сеансовые компоненты без сохранения состояния и частное состояние

Согласно чистому коду Роберта С. Мартина, методы должны иметь маленькую сигнатуру. В лучшем случае это метод вообще без параметров. Вместо этого рекомендуется использовать переменные состояния. Это действительно полезно. Но как насчет сессионных компонентов без сохранения состояния?

Название немного сбивает с толку, потому что SLSB может иметь состояние. Вам просто нужно сделать свою уборку, чтобы не использовать состояние из предыдущего вызова EJB.

Возвращаясь к чистому коду :Я бы хотел использовать переменные экземпляра и в SLSB. Это прекрасно работает, и если вы достаточно осторожны, у вас не возникнет проблем с несоответствием состояния, поскольку состояние перезаписывается при каждом вызове общедоступного метода.

Пока все хорошо. Но что произойдет, если использованный боб вернется в бассейн? Он уносит с собой свое состояние. В зависимости от размера состояния это может быть настоящей утечкой памяти. JBoss очень щедр на bean-компоненты и генерирует довольно много их, вызывая серьезное потребление памяти -впустую.

Таким образом, один из способов — очистить состояние до того, как будет создан метод компонента и компонент будет возвращен в пул. Но мне кажется, что это бесполезный код, которого следует избегать.

Есть ли правильный способ решить эту проблему? Какова наилучшая практика в этой ситуации?

10
задан Jaumzera 21 June 2016 в 12:58
поделиться