关于singleton的一些问题.

eyestrong 2003-07-29 10:23:11
抱歉我还没有拜读<设计模式>一书,因此对singleton有一些不理解.
1.在.net的应用程序中什么地方应该使用到singleton?
2.若在数据库连接中使用singleton进行实例化,在效率上是不是有很大的好处?
...全文
27 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xys2003 2003-07-30
  • 打赏
  • 举报
回复
singleton模式表示类的实例是唯一的
关键是构造函数私有化
weifenluo 2003-07-30
  • 打赏
  • 举报
回复
在分布式软件中,一般不使用singleton作为多个客户端的连接.

因为分布式软件,scalability(可扩展性?)很重要.使用singleton,限定了连接只能在一台机器上,而且一次只能响应一个请求.资源是节省了,可是效率很低.一般使用Connection Pool.
weifenluo 2003-07-29
  • 打赏
  • 举报
回复
楼上说得对,singleton表示系统中只有一个实例的对象.

在.Net Framework中,非常简单,当你在类中定义并初始化一个static的field,这个field就是singleton.要注意的是.Net Framework内部作了一些额外的工作(锁住类)来保证多线程下任何static field的安全.

singleton使用的地方很多,并不仅仅限于系统配置或数据库连接
LYH1977 2003-07-29
  • 打赏
  • 举报
回复
singleton表示系统中只有一个实例,我有时把它用作系统配置
用在数据库连接中可是可以的啦,只是你的程序是不是操作数据库很频繁?如果不是,只是偶尔用一下的话,保持一个连接是很浪费的
pipibug 2003-07-29
  • 打赏
  • 举报
回复
gz
eyestrong 2003-07-29
  • 打赏
  • 举报
回复
那么在一个很多个客户端连接的c/s或b/s结构的分布式软件中使用singleton是不是很节省资源?
相关推荐
发帖
C#

10.9w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2003-07-29 10:23
社区公告

让您成为最强悍的C#开发者