讨论:J2EE中单体模式应用。

qfs_v 2008-07-06 09:01:36
比方说,在数据库连接上应用了单例模式,这样做的人估计不在少数,请大家参与讨论,这样设计的好坏。(据库连接应用只是个引子,除了数据库连接,还有其他哪些方面的应用,请大家说下自己的应用过程。)

下面是我看到的关于Singleton的评价文章,感觉可以,大家可以看看。
模式批判之Singleton :http://blog.csdn.net/wingfiring/archive/2006/08/08/1037079.aspx

这个是关于数据库连接使用单例模式的讨论贴,很好,很强大!值得一看:
http://topic.csdn.net/t/20040113/11/2659331.html

列举了这么多,还希望各位踊跃发言!




...全文
213 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
白一梓 2011-12-21
  • 打赏
  • 举报
回复
有没有自己做的单体模式的例子啊,拿来分享。
qfs_v 2008-07-11
  • 打赏
  • 举报
回复
大家对类似的讨论似乎不感冒啊,或许是我问的问题太低级了吧。好吧,那就这样吧。
qfs_v 2008-07-06
  • 打赏
  • 举报
回复
关于数据库连接应用单体模式的问题:
关于把单例模式应用到数据库connection的问题较为复杂,如果是简单地把一个connection对象封存在单例对象中,那么在J2EE环境中这是错误的。如果数据库连接做成单例模式也就是说系统只会存在一个数据库连接实例,大家公用。实例不可以并发使用。因此存在排队,单例模式管理是需要排队的。资源有两种,一种需要排队,一种不需要排队,或者需要一种复杂的排队,譬如数据库就是复杂的排队问题,系统的排队是不可避免的,应该由数据库引擎自行解决。解决方式就是纪录的locking,而locking不应该由Java程序解决。尽量将排队的工作交给更低一层来做,这样可以获得更高的效率。
但是在单用户系统中这并不是什么严重的问题,因为在某一个时刻只有一个用户在使用,唯一的问题就是系统可能需要几个connection,譬如两个、三个等,而不是一个。

J2EE服务器系统中单例模式可以用来管理一个数据库连接池(connection pool)。单例模式可以用来保存这样一个connection pool,在初始化的时候创建譬如100个connection对象,然后再需要的时候提供一个,用过之后返回到pool中。如果不是用单例模式的话,这个pool存在哪里,就是一个问题。最后可能只好存到Application对象中。

上面的是节选

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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