从JIVE中学到的....

03-06-21 newjoy
小弟不才,一个月前才接触JIVE,看的是JIVE 2.4 版本的源代码,感触不少。特别是把他的一些思想用到自己的项目中,这儿是我在自己项目中应用JIVE思想的一些做法,大伙看有没有什么错误。

1.在我的项目中一律使用 DBxxxxx.class DBxxxxxManager.class 来管理数据库的操作细节。

DBxxxxx.class 维护自身一条记录的增、删、改(数据持久化)、和基于关键字的查找。

DBxxxxxManager.class应该说是一个 DBxxxxx.class 的容器。他负责何时去创建、删除、修改一个DBxxxxx.class对象,其实真正的数据库操作工作还是交给DBxxxxx.class去做。

DBxxxxxManager.class 还提供搜索方法,通过传入 filter对象,它可以自动生成SQL语句,去数据库中返回一批DBxxxxx.class对象。

也就是说 DBxxxxxManager.class 是外部其他模块使用 DBxxxxx.class 的总管。别的模块要操作 DBxxxxx.class 必须先通过 DBxxxxxManager.class 获得(以后可以方便的扩充多项功能,如缓冲机制)。

需要指出的是,我对所有的DBxxxxxManager.class使用了单例模式,早期是考虑将一些常用的信息由DBxxxxxManager.class存放在内存中,必须只产生一个实例。在看了JIVE的缓冲机制后, 现在我越来越觉得单例模式已不存在它的价值,但目前仍然保留着。这儿会不会出现一些问题?

2.缓冲机制。在JIVE里有个缓冲总管 -- DatabaseCacheManager.java 。他是通过DBForumFactory产生的程。

我不理解的是,他为什么必须由 DBForumFactory 产生,如果要使DatabaseCacheManager.java在程序中只产生一个实例,只接使用单例模式不就行了么? 免得整个程序中遍步着DBForumFactory 的引用

banq
2004-10-31 17:13
这是个非常不错的帖子,今天才发现,推荐顶一下,希望大家从研读源码中获得经验和进步。

melanhen
2004-11-01 09:21
我现在越来越发现在系统中自己实现ORM是件吃力不讨好的事情,楼主好像就在试图做这个哦:)

猜你喜欢