amazonaws:什么叫有状态对象和无状态对象?--bbs

来源:百度文库 编辑:中财网 时间:2024/05/01 20:36:46
什么叫有状态对象和无状态对象?
什么叫有状态对象和无状态对象?
楼主说的是 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规范就知道了.
谢谢楼上的,明白了什么叫有状态的和无状态的了,