解决的问题
限制唯一实例
提供一种易于全局访问实例的方式
与静态类的比较
什么时候使用静态类更好
比如 java.lang.Math 类这种工具类,不维护任何状态,仅提供全局的方法访问,这个时候用静态类更好,因为方法调用都是编译期绑定。
不建议使用静态类维护状态信息,特别是在并发环境下容易出现 race condition。
静态类和单例之间的区别
- 静态类有更好的性能,因为方法调用都是编译期绑定。
- 如果需要维护状态,使用单例更合适。
- 如果对象很大,单例可以懒加载。
单例的优势
更加面向对象。可以通过继承基类和实现接口,享受继承和多态的便利。
如果只是需要一系列静态方法的集合时,使用静态类,其它情况下使用单例。
参考
文档信息
- 本文作者:王玉镇wangyuzhen
- 本文链接:https://wangyuzhen666.github.io//wiki/basis-dp-singleton/
- 版权声明:Creative Commons 4.0 传播此文章时,您需要遵守知识共享协议。 署名(BY)&非商业性(NC)&相同方式共享(SA)------------------------------- When disseminating this article, you need to adhere to a Creative Commons license. Attribution (BY) & Non-Commercial (NC) & Shareby Manner (SA) .(Creative Commons 4.0)