关于singleton的一些问题.

eyestrong 2003-07-29 10:23:11
抱歉我还没有拜读<设计模式>一书,因此对singleton有一些不理解.
1.在.net的应用程序中什么地方应该使用到singleton?
2.若在数据库连接中使用singleton进行实例化,在效率上是不是有很大的好处?
...全文
37 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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是不是很节省资源?

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧