站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题什么叫有状态对象和无状态对象?

什么叫有状态对象和无状态对象?

摘要: 什么叫有状态对象和无状态对象?


什么叫有状态对象和无状态对象?


D


D


楼主说的是 Stateful Bean和Stateless Bean吧~~
是EJB SessionBean的两个类型,
Stateful的话, SessionBean每次调用方法后会保持状态。
Stateless的话, SessionBean每次调用方法时, 状态全部回到默认值。


Stateful bean怎么样才算是保持了状态呢?

保持状态如何理解?



有状态就是有数据存储功能,购物车就是很好的例子,买一件东西放进购物车,可以再次购买或者删减。
无状态就是一次操作,不保存数据。


有状态对象,说白了就是有数据成员的对象,这样的对象由数字描述其状态。而保持状态就是将其存储在某个存储器中以便以后使用。
无状态对象很简单咯,就是没有数据成员的对象,通常这样的对象只是有一些接口,起到桥接的作用。


Stateful的话, SessionBean每次调用方法后会保持状态。
Stateless的话, SessionBean每次调用方法时, 状态全部回到默认值。

举例说明一下:
比如有个SessionBean叫做 BusinessLogicEJB, 下面有两个方法, methodA(), methodB(), 和一个数据成员String data.

如果是Stateful, 那么methodA() 方法调用后, methodA()方法把data值改为"A", 那么methodB()在调用时, 就会得到data的值是"A".

如果是 Stateless, 那么methodA()中不论你怎么改变data的值, methodB()中取到的永远是data = "".

(你没学过J2EE EJB可能不理解, 明明是一个类里的两个方法, 为什么A方法改变data的值, B方法去取data的值会还原为"")

看一下Sun公司J2ee EJB规范就知道了.


谢谢楼上的,明白了什么叫有状态的和无状态的了,


↑返回目录
前一篇: 在做一个EJB例子时,出现了这样的问题
后一篇: J2EE里面的上下文到底如何理解?