Singleton模式与数据访问等问题……请高手解答
前文:小弟做了一个项目,是多层结构的,各个层都使用了Singleton模式,以减少对象建立的开销,并且保证数据的一致性,但后来出现了一个问题~~
原因:由于我在数据访问组件中实现了一个内置的连接持续功能,就是page开始的时候打开连接,结束的时候断开,这样才可以使用SELECT @@IDENTITY来获取新建ID,否则在各层中多处打开并关闭连接的话,SELECT @@IDENTITY将无法跨层使用。。。
问题:于是出现了这样的问题,使用Singleton的情况下,逻辑层对象仅仅建立一次,所以第一次访问便没有问题,可以后再访问的时候,数据连接组件对象就被默认加到了逻辑层的单例中了,我试图在非新建对象的情况下,让逻辑层替换掉数据访问对象,结果居然没有任何效果。。。于是,我索性将数据访问组件也搞成Singleton的了。。。这下问题解决了,但我很担心,这样会不会导致并发容量变得很小?以及DataReader的时候独占了数据访问对象中的数据连接?望高手给予答复,谢谢。
问题点数:0、回复次数:4Top
1 楼cnlamar(无中生有)回复于 2004-09-01 21:52:27 得分 0
upTop
2 楼thisisnet(高天上圣大慈仁者玉皇大天尊玄穹高上帝)回复于 2004-09-01 22:09:28 得分 0
能否贴出部分代码?
你的Page里面的数据是从DataAccess层获取还是经过了Common层?
说实话我看不太懂阿。Top
3 楼cnlamar(无中生有)回复于 2004-09-01 22:22:27 得分 0
page <-> Facde <-> Rules <-> DataAccess
代码一贴就太太长了。。。而且分得比较开,很难贴Top
4 楼cnlamar(无中生有)回复于 2004-09-01 22:23:18 得分 0
更正:page <-> Facade <-> Rules <-> Entity <-> DataAccessTop




