JiveJdon Community Forums
在线420人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 1 回复 / 1
 发表新帖子   回复该主题贴
onlylx

悄悄话
发表文章: 7
注册时间: 2003年06月26日 22:09
Jive中的设计模式问题 2003年06月26日 22:13 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 设计模式(166)     
最近看了Jive的源码,感觉收获极大。就想把一些方法在我们的项目中应用,但是遇到了一些问题,请各位大虾指教!
Jive 中针对论坛中的对象定义了一系列的接口,比如:Forum,ForumThread,ForumMessage等,通过ForumFactory可以创建这些对象。然后Jive针对这些接口做了数据库的实现,比如DbForum,DbFrumThread,DbForumMessage,DbForumFactory等,这样创建对象的话必须要通过工厂。

但是这些工厂创建的都是比较简单的对象,比如对于DbForum,用户的输入可能就是name和description,因此,创建论坛的方法是
Forum createForum(String name, String description) ,用户拿到Forum对象以后,可以调用一些方法来更改对象,比如:
setModifiedDate(Date modifiedDate),该方法会调用saveToDb()来更新数据表中的纪录。
但是创建复杂的对象这样做是否合适,比如有下面的对象:
class A
{
String name;
Vector v; //v中保存的是一系列b对象
}
class B
{
String name
.....
}
这时候工厂方法是不是就不太适用了?

另外在DbForum中setName,setDescription,setCreationDate等方法都要调用saveToDb来更新数据库,因为用户的修改可能大多是

setName,setDescription,这样做代价也许并不是很大,但是如果一个对象需要频繁更新,比如上面的class A有很多成员变量,都需

要更新,并且更新的代价很高(例如需要保存到文件中),这时候怎么办?我的想法是在class A中设置一个save()方法,对一个对

象做完所有的修改后再调用该方法,把对象进行持久化,但是程序员可能经常忘了调用该方法。有什么好的模式来解决?

一个DbForum对象在用户关心的可能只是name和description,因此通过jsp可以很容易的把DbForum对象显示出来,并且获取用户的输入,进行修改。复杂的对象在浏览器中如何呈现?如何获取用户的输入进行修改?通过一些表单来传递参数可能太复杂,太繁琐了。
chenye99

悄悄话
发表文章: 15
注册时间: 2003年06月23日 10:20
Re: Jive中的设计模式问题 2003年06月27日 11:08 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
使用工厂模式的用意有两个:一是屏蔽不同产品类直接的区别,客户端只需关注抽象的接口。第二个就是屏蔽产品类创建的复杂过程。所有是否使用工厂模式与对象的复杂度没有直接的关系。当然了,我们需要一定的标识来告诉工厂创建什么样的产品。
这个主题有 1 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam