整理:vcc

1: 1105426 : ----------------------------------
*原文*(*wujj_sn*于2001/07/08 16:41粘贴) *Re: help!关于AOD在web
application中的应 *
---------------------------------------------------------------------------
我觉得,这两种方法事都可以。关键要看一下你应用的其他情况,如果完全按照oo的思想,第一种方法更贴近一点。数据库是关系型数据库,但应用逻辑还是处
在应用层中,因此,除非你完全用oodb,否则,两者总是不对应。如果你的table中记录非常多,那么你重构对象A的代价太大了,如果table记录比
较少,那么第一种方法可取性更高一点。
一点愚见,请指正。
----- Original Message -----
From: "Smiling电子小组“UMLCHINA”"
To: "Smiling电子小组“UMLCHINA”的成员"
Sent: Sunday, July 08, 2001 2:33 PM
Subject: help!关于OOA/OOD在web application中的应用
> 此消息由 lzhihua@sina.com 粘贴
> ****************************************************
> 小组名称: "UMLCHINA"
> 小组信箱: umlchina@smiling.com.cn
> 小组描述: 致力于OO思想和软件工程在中国的传播和发展
> ----------------------------------------------------
> 智能职位搜索引擎(http://job.focus.com.cn)
> 网上求职新概念,所有网上职位尽在你的点击之下!
> ★★★★★★★★★★★★★★★★★★★★★★★★★★★★
> 消息标题:help!关于OOA/OOD在web application中的应用
> 消息内容:
>
> 不知各位大虾有否在web application中应用OO思想分析的经验.
> 我以前曾为此思考许久亦未得其门而入,后来看了一篇文章大概是Model web application with UML ,
其主要思想是将每个page视为对象并且将page的server端存在形式和browser端存在形式分别看待且他们间的关系用一种新的steroty
pe - > 来修饰 , 这种方法只解决了UI与底层模块联系的问题。
> 我的问题是:
> 数据库到底在application中 扮演什么角色?
> 比如有这样一种情况:
> 一个A对象含有一个链表,链表中的每个节点是关于某个特定产品的信息。
> 很自然的我们的数据库会有一个关于产品的table,table中每一条记录对应链表中的每个节点即存储关于某个特定产品的信息。
> 现在我要给A对象写一个查询的方法(函数),每次页面访问时都要用该方法, 这时有两种情况:
> 1。该方法在链表中查询。(每次页面访问时,将所有记录从数据库中取出,重构链表,即重构A对象)。
> 2。直接在该方法中写上SQL语句,在数据库中查询。
>
> 第一种方式是将数据库看作对象序列化存放的容器。而第二种方式是直接将数据库看作对象的属性(
这听上去似乎有点夸张)。因为这时A对象将不需要含有链表,只包含该方法即可。
> 从分层的观点看,第一种方式显然A对象的层次高于数据库,而对第二种方式,数据库与A对象应位于同一层。
>
> 就我个人而言,我比较倾向于第二种方式,但似乎又觉得这不合乎OO的思想。
> 恳请各位大虾发表高见,吾不胜感激!。
> ★★★★★★★★★★★★★★★★★★★★★★★★★★★★
>
> ____________________________________________________
> 焦点网 Smiling 电子小组 http://www.smiling.com.cn
> 功能齐全的免费交流社区,可以发消息、建相册、上传
> 文件、投票、和小组成员在线聊天、制作小组主页,还可以
> 群发邮件……
> 人气最旺的小组,小组成员过万人。
> ----------------------------------------------------
> 你可以直接回复此邮件(不能修改邮件标题),回复的
> 邮件将自动粘贴在本小组消息版。
> 你还可以选择立即接收小组消息、每天集中接收一次、
> 每周集中接收一次或不接收。
---------------------------------------------------------------------------

1: 1105427 : ----------------------------------
*原文*(*wujj_sn*于2001/07/08 16:45粘贴) *Re: help!关于AOD在web
application中的应 *
---------------------------------------------------------------------------
有道理,ejb我不懂,但是对于实体对象,可以把查询放在类方法中。
----- Original Message -----
From: "Smiling电子小组“UMLCHINA”"
To: "Smiling电子小组“UMLCHINA”的成员"
Sent: Sunday, July 08, 2001 5:03 PM
Subject: 回复: help!关于OOA/OOD在web application中的应用
> 此消息由 xyz_list@263.net 粘贴
> ****************************************************
> 小组名称: "UMLCHINA"
> 小组信箱: umlchina@smiling.com.cn
> 小组描述: 致力于OO思想和软件工程在中国的传播和发展
> ----------------------------------------------------
> 智能职位搜索引擎(http://job.focus.com.cn)
> 网上求职新概念,所有网上职位尽在你的点击之下!
> ★★★★★★★★★★★★★★★★★★★★★★★★★★★★
> 消息标题:回复: help!关于OOA/OOD在web application中的应用
> 回复标题:help!关于OOA/OOD在web application中的应用(1103732)
>
> 消息内容:
>
>
其实可以参照ejb的思想,链表的每个节点实际应该是一个实体,因为要保存在数据库中的。那对于实体的查找方法可以封装在一个对象中,也就是ejb中的h
ome接口方法,你可以专门写个这样的类是里面的函数是对实体对象查询,返回实体对象的。这样你在A对象中,只要对应的方法中调用这个查询的类中的相应方
法就可以了。也不需要有很大链表的开销,也封装的sql语句。额外的开销是要将查询的结果还原为对象,组成一个集合。