Java单例和静态类

单例模式和静态方法之间基本的区别是非常重要的,前者给你一个Object,后者仅仅提供静态方法,由于对像比方法具有较强的能力,可以指导你什么时候使用单例模式与静态方法

Java中单例与静态的区别
  • 静态类比单例具有更好的性能,因为静态方法在编译期绑定
  • 再次,它们的区别是override的能力,因Java中的静态方法是不可以覆盖的,这就导致其木有太多的灵活性,另一面,你可通过继承的方式覆盖单例类中定义的方法
  • 静态类很难模拟,因此难于单例测试,单例更容易模拟,因为也比静态类易于编写单元测试,不论神马单例期望神马,你都可以传递模拟对象,例如构造方法或方法参数
  • 如果你的需求中需要维护状态信息,则单例比静态类更适合,因为后者在维护状态信息方面是非常可怕的,并导致狡滑的bug
  • 如果是一个非常重的对象,单例可以懒加载,但是静态类没有这样的优势,并且非常热切的加载
  • 许多依赖注入的框架对单例都有良好的管理,例如Spring,使用它们非常容易
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 4,312评论 4 34
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,825评论 18 399
  • 我蒙着眼 蒙着耳 回归寂寞的原生态 黑暗 微光 孤注一掷。
    留子尧阅读 222评论 0 5
  • 1、创建Apple ID 2、用Apple ID登录https://developer.apple.com/,同意...
    zhimingcow阅读 787评论 0 3
  • 5.22字符串学习 字符串对象 字符串:由多个字符组成的只读数组只读:所有API都不能直接修改原字符串,必须返回新...
    Mr丨qing阅读 271评论 0 0