小弟不才,一个月前才接触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 的引用