⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_23780.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:23780 发表者:啊志 发表日期:2002-12-06 13:56:05
<br>主题:有面向对象设计经验的高手请进
<br>内容:面向对象的程序设计有以下疑惑的地方:<BR>数据库的连接策略:<BR><BR>对于面向过程的设计,获得一个比较经济的数据库连接策略是很容易的,我们可以在过程开始的时候连接数据库,在所有的程序结束后关闭数据库的连接。这样,整段程序都可以共享一个数据库连接资源。<BR><BR>但是在面向对象的设计中,一个对象如果需要连接数据库,就要有一个属于自己的connection对象,如果在程序中,有多个这样的对象,而且在运行时要逐个使用者几个对象,那样的话,没使用一个对象,就要有一次数据库连接。这样,数据库的连接就很多了,会造成资源的很大浪费。<BR><BR>我想在面向对象的设计中,这些问题应该是很常见的问题,请问有没有解决的办法,或者一些典型的解决方案。<BR><BR>我想的一个办法是,每个对象内部设一个conn对象,这个对象可以被赋值。在加一个标志,说明这个连接是不是自己创建的,然后使用,。。。在结束时,判断,如果conn是自己创建的,就关闭连接,否则保留。<BR><BR>但是我觉得这样太麻烦,请问有没有更好的办法?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:凯凯 回复日期:2002-12-06 14:23:05
<br>内容:我的作法,用一个全局的连接,在程序初始化时设置好所以细节但并不连接。<BR><BR>在每一个具体的对象(需要连接数据库的)中加一个指针成员指向这个全局变量。<BR>在对象需要操作数据库的成员函数中选判断连接是否有效,有则直接用,无则连接之。函数结束时断开它。有一此函数只被其他会连接数据的函数操纵,则退出时不用断开,由调用它的函数负责断开。但因为是共用的,所以所有相关函数都要在开头判断一下。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:啊志 回复日期:2002-12-06 22:14:52
<br>内容:我再想想,或许这样就行,没更好的办法了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:啊志 回复日期:2002-12-10 14:14:02
<br>内容:请看http://www.vchelp.net/cndevforum/subject_view.asp?page=-1&amp;subject_id=23650
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:植物人 回复日期:2002-12-15 11:21:14
<br>内容:设计一个持久话层,就象我们公司正在作的那样。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:啊志 回复日期:2002-12-15 18:54:55
<br>内容:持久话层??能讲一下么?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不想 回复日期:2002-12-20 15:50:05
<br>内容:做O-R映射,Microsoft也在做一个叫做ObjectSpace,就是实现了O-R映射。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:天才 回复日期:2002-12-24 17:31:29
<br>内容:自己做一个连接池也不错!<BR>不过我最常用的方法同 植物人 的!可以参照Singleton模式。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xingcs 回复日期:2002-12-27 10:16:18
<br>内容:以上大侠说的都很高深,能不能说的更详细一点。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:啊志 回复日期:2002-12-27 13:52:15
<br>内容:谢谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:风月 回复日期:2003-05-26 12:31:33
<br>内容:偶来经过:)<BR><BR>面向对象中可以考虑用“单例模式”来解决这个问题。<BR><BR>public class dbaccess<BR>{<BR>&nbsp;&nbsp; private static dbaccess db = new dbaccess();&nbsp;&nbsp; <BR>&nbsp;&nbsp; private dbaccess(){} ;<BR>&nbsp;&nbsp; public dbaccess getinstance()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp; return db;<BR>&nbsp;&nbsp;}<BR>}<BR>看明白了吗?这样,整个应用中保以保证数据库资源永远被实例化一次。<BR><BR><BR>&nbsp;&nbsp; <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:阿志 回复日期:2003-05-26 12:40:42
<br>内容:谢谢你,最后的时候,我用了一个全局对象<BR><BR>还是你这种方式好,我想起前段时间刚看的, c++类作链表就是这样。<BR><BR><BR>2003-5-26 12:46:18

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -