Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
关于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会出现问题。欢迎讨论。
Singleton单例模式