说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

关于状态对象与无状态对象

编辑:说三道四文库 发布时间:2018-01-24 05:38
HTML文档下载 WORD文档下载 PDF文档下载
各位大侠:
在MTS/COM+多层开发中,根据书面上理解,状态对象是指其属性值会影响其方法的行为,而无状态对象则不会,即对象池中的无状态对象可以相互替代,但有状态对象则不行.但书本上只浅说使用状态对象必须将其属性值保存起来,并在再一次调用时对其属性值进行恢复,可否举例子说明一下,如何保存与恢复有状态对象的属性值呢?
非常感谢!
顶……
这个问题比较复杂。简单的举个例子,假设某具备状态的加法服务对象包含一个接口:
IStatefulSum = interface
  procedure SetX(const Value: integer);
  procedure SetY(const Value: integer);
  function sum: integer;
end;
调用前两个方法设置X、Y属性的值,然后调用第3个方法计算其和。如果是无状态服务则会被合并成
IStatefulSum = interface
  function sum(const X, Y: integer): integer;
end;

我们讨论状态对象,两个用户A、B登录后获得各自的SessionID ID_A、ID_B。为了能够在调用之间区别方法所设置的X、Y是那个用户设置的,我们可能会设计这样一个表:
-------------------------------
UserID     Value_X      Value_Y
-------------------------------
当某用户调用SetX/Y方法的时候,需要在代码中写数据库,比如A调用SetX(3),然后B调用SetX(4),B再调用SetY(9),A又调用SetY(11),数据库内容如下:
-------------------------------
UserID     Value_X      Value_Y
-------------------------------
ID_A       3            11
ID_B       4            9

则当用户调用Sum方法的时候,代码应该搜索数据库,找到对应用户ID的X、Y数值,加和返回。

如果不是这样设计,而是直接在对象中存储X、Y属性,则前面的用户设置的X、Y数值会被最后一个用户设置的值所代替,导致计算出错。

这就是保存属性值的意思,属于称之为状态的持久化。其实不只是状态对象,无状态对象也经常使用持久化技术存储一些重要数据。
手误,“属于称之为状态的持久化”应为“术语称为状态的持久化”
谢谢,请问Session ID是在什么时候分配的?又在什么时候释放?
是不是客户端创建对象的时候?接口设为nil的时候?
那如果是操作状态对象的话,接口指针就一直都要保存着?对吧?
也就是说创建对象之后得到的接口指针就代表了Session ID ,重新创建得到的又是另一个ID,对吗?
SessionID的问题超出了原来问题的范围,打个比方,如果你可以通过IP地址来区别A、B两个用户,那么IP地址就可以作为SessionID,它在这里只是用于唯一标识两个不同用户的代号。又好比在ASP中的session对象,也是一样的东西。
如果将属性有效的持久化,接口指针可以按需创建。
当然前提是要在客户和持久化的属性之间建立起一一映射关系,这已经超出了问题原本的范围了。
响应高达6秒 用户揭露Heroku修改路由“50倍圈钱”? [探讨]响应式设计四大原则 Linux Kernel 3.8发布 停止支持386设备 HTML5手机游戏引擎Devkit开源 程序员的一天:台湾个人移动游戏开发者 关于<ul>标签的作用 美女与本本 如何使textbox中输入的仅仅是阿拉伯数字0-9?高人请赐招 湖北的中程成绩出来了 派分讨论,现有的桌面数据库引擎哪个最好! 英文字符单引号'的html字符怎么表示? 请教jsp调用useBean的问题! 不用企业管理器,能不能修改表的名称? 急求一小程序源码,分析收到的ICMP包 英文翻译“吉他爱好者”在线等 像螺丝刀这样,有一个较大的“( )”与一个较小的“ 解决几个关于中华民国的问题.中华民国是一个什么性质 英语翻译 改锥与螺丝刀有什么区别? 《士兵突击》里说的改锥是什么东东? 西玛钟表螺丝批 六件套钟表螺丝刀/钟表改锥 英语翻译,吉他有几个品味? 在吉它术语中什么叫度,大调式和小调式的通俗意思是? 强风暴抵达俄罗斯圣彼得堡惊涛拍岸德媒:美在全球设点监控政府通讯澳女公务员出差搞一夜情 拽下台灯砸掉媒体:中国需要制定法律对现有反恐机制美媒爆料国家安全局秘密潜入雅虎、谷歌洪秀柱:参选风雨多 一步一脚印、开创范玮琪亲自推婴儿车逛街 腰间绑厚厚护信息孤岛挡了打拐之路第十届豫商大会闭幕 叶冬松出席并讲话河南26个中国传统村落列入中央财政支超时空二道贩子外道鬼虐绝世神豪华娱玉泉国际狩猎滑雪场旅游下枧河旅游白龙公园旅游上海观光游巴士THEBIGBUS旅游笔山洞旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘