清理代码,无状态会话bean和私有状态

M. *_*ssa 10 java coding-style ejb-3.0 java-ee-6 ejb-3.1

根据Robert C. Martin的干净代码方法应该有一个小签名.最好的情况是没有参数的方法.相反,建议使用状态变量.这非常有用.但是无状态会话bean呢?

这个名字有点令人困惑,因为SLSB可以拥有州.您只需要进行内务管理,这样就不会使用先前EJB调用中的状态.

回到干净的代码:我也喜欢在SLSB中使用实例变量.这样可以正常工作,如果你足够小心,你就不会遇到状态不一致的问题,因为每次公共方法调用都会覆盖状态.

到现在为止还挺好.但是如果用过的bean回到池中会发生什么?它采取了它的状态.根据状态的大小,这可能是真正的内存泄漏.JBoss对bean非常慷慨,产生了大量的bean,导致一些严重的内存消耗 - 一无所获.

因此,一种方法是在bean方法存在之前清理状态,并将bean返回到池中.但在我看来,这应该是无用的代码.

有没有正确的方法来处理这个问题?在这种情况下,最佳做法是什么?

Bri*_*ian 1

保持生活简单,只需传递参数即可。即使您可以这样做,从无状态 EJB 的意图来看,很明显您不应该这样做

FWIW 以零参数为目标对我来说似乎很愚蠢。是的,目标是少数,但仅仅为了零而奋斗是愚蠢的。

  • 顺便说一句,对一个真正的意见的反对似乎很严厉,而这个意见恰好不同意你似乎想要采取你的豆子的方向? (2认同)