浏览 4530 次
锁定老帖子 主题:有关在DAO中使用static函数
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-07-13
欢迎各位的高见! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-07-13
哪位能否比较一下使用static和不使用的优劣呢?
|
|
返回顶楼 | |
发表时间:2004-07-13
个人不认为过多使用static是个好方法,以前学操作系统的时候,据说所有的static数据或者方法好像都是放在内存另外一块固定的地方的,和常量放在一起。但是要说效率什么的,还真不好说。只是觉得不太符合OO。
|
|
返回顶楼 | |
发表时间:2004-07-14
在DAO中使用static主要有以下不好之处:
最主要的,作为数据的核心抽象层,让你的业务直接绑定在你的DAO的实现上,没有办法获得像使用接口后带来的某些好处。比如持久层实现策略上的切换,假设你的多数业务都是使用hibernate作为默认的持久层策略,特定业务需要使用jdbc来进一步优化,你如何用统一的DAO模型实现? 其次,因为实现被绑定,很难再进行结构上的优化。我不同意楼上的说法。线程并发优化是一个比较复杂的问题。直接使用static方式,你需要对代码做同步处理,高并发情况下,会出现很多线程等待的情况。很多时候仅仅只需要new一个新的实例,就能极大的提高效率。也就是说,我们需要能够在时间和空间的策略上做有效的平衡和切换。 这个缺陷其实也是上面所说的延伸。 另:现在内存等硬件如此便宜,大多数情况下确实可以不用太在意。为你的服务器加1G的内存,比你多购买一个oracle数据库连接的lincense要便宜的多。 |
|
返回顶楼 | |
发表时间:2004-07-14
使用static方式,就不能实现完整得DAO模式,比如不能定义统一的DAO接口,因而也就不能使用DAOFactory,这样,DAO带来的好处就少了许多。
|
|
返回顶楼 | |
发表时间:2004-07-15
yapex 写道 在DAO中使用static主要有以下不好之处:
最主要的,作为数据的核心抽象层,让你的业务直接绑定在你的DAO的实现上,没有办法获得像使用接口后带来的某些好处。比如持久层实现策略上的切换,假设你的多数业务都是使用hibernate作为默认的持久层策略,特定业务需要使用jdbc来进一步优化,你如何用统一的DAO模型实现? 其次,因为实现被绑定,很难再进行结构上的优化。我不同意楼上的说法。线程并发优化是一个比较复杂的问题。直接使用static方式,你需要对代码做同步处理,高并发情况下,会出现很多线程等待的情况。很多时候仅仅只需要new一个新的实例,就能极大的提高效率。也就是说,我们需要能够在时间和空间的策略上做有效的平衡和切换。 这个缺陷其实也是上面所说的延伸。 另:现在内存等硬件如此便宜,大多数情况下确实可以不用太在意。为你的服务器加1G的内存,比你多购买一个oracle数据库连接的lincense要便宜的多。 同意,直接使用static方式,最大的问题是需要对代码做同步处理 |
|
返回顶楼 | |
发表时间:2004-07-25
同意楼上的做法,我现在也有感于团队中成员胡乱的使用
static进行设计的,如果仅仅只是数据的读取,这样的singleton是可以接受的,不然同步设计必须谨慎 |
|
返回顶楼 | |