Dojo
最新
最佳
搜索
订阅
解道Jdon
领域驱动设计
架构设计
热点话题
GitHub开源免费源代码
RUST语言
规则引擎
DevOps文章排行榜
数据科学
产品经理
数据分析
前端架构文章排行榜
幽默模因
更多话题
关于singleton模式的一个问题?
02-12-04
追风
如果一个类实现了singleton模式,那么在使用时只要简单的调用ClassName.getInstance()就可以了,可是如果一个项目中有很多地方会用到这个类,每次使用时都是通过ClassName.getInstance()来得到,那么是不是使用的有些不当?
banq
2002-12-04 12:00
完全正确 ,这属于过渡使用singleton ,
因为使用singleton会给程序运行调试带来方便,都是单线程,唯一的,单用户的DEMO版是容易做的。
过渡使用的缺点很现显然,系统性能大幅度下降。
zingers
2002-12-04 17:31
我来说一句,不要说效率,可用性都是问题。比如在数据库操作中,把DataSource设为Static ,其实就是单子,你会发现2个以上的request就无法使用。
追风
2002-12-05 08:31
可是一个项目中的确有很多类需要一个对象就足够了,该怎么办?另外一个类如果所有方法都是静态方法,那么它和单态模式有什么不同,哪一个更好?
banq
2002-12-05 20:51
static 不彻底,只是方法或变量的唯一。singleton比较彻底
追风
2002-12-06 08:49
只要构造方法改为private,效果不就一样了吗。
另外有个问题顺便也请教一下banq大哥,我在一个stateless bean中调了一个普通类的静态方法,然后在该方法中访问数据库,由于ejb中容器会实现同步方法,那是不是我在普通类中的静态方法就不需要同步了?
banq
2002-12-07 13:09
我感觉你使用EJB调用外部的static方法,这种做法不好,至少应该是final static方法。
还有,为什么不使用session直接访问数据库?通过entity bean也可以啊。你这样做后患很多。
因为我没这么做过,所以没法回答是否需要同步。
sonata
2002-12-21 11:30
不懂。有什么过度使用啊?单体类就是要这么用啊。
Datasource就是要搞成单体啊,除非非常非常特殊的应用。
静态sql方法非常的不可取,推荐看看<java高效编程指南><java2核心技术 I>
。
wy0502
2002-12-23 16:31
我感觉这样使用singleton没问题,如果你是在不用的jvm中使用有状态的singleton会出现问题。欢迎讨论。
猜你喜欢
本站原创
《复杂软件设计之道:领域驱动设计全面解析与实战》
其他人在看