• java使用单例与使用static方法的对于和个人理解


    最近在重构项目中的老模块,打算引入spring boot对原有项目自己封装的依赖注入模块进行替换。项目中存在大量的工具类,大都是使用static方法编写的,比如时间工具类用于格式化日期,编码工具类用于编码解码。研究了下是否有必要对这些常量方法的类进行单例重构。

    首先要说明的是,两种方式都是可以实现功能的,只在一些特殊的场景会有些区别。除非比较感兴趣,一般是没必要太深究

    区别和特点:

    单例:有实例,有状态

    静态方法:无实例,无状态,纯函数

    静态方法实现方式的优点是突出了一个简单粗暴,不实例对象,并且由于静态方法是在编译期静态绑定的,性能会有一点提升。对于大部分业务无关的工具类,确实比较适合这种场景。

    缺点也很明显,由于不实例化对象,也就不遵守面向对象的设计。什么高内聚低耦合,单元测试,实现替换,AOP代理等等这些面向对象的优势,就都没有了,相较与面向对象会更加难以应对变更。

    想用AOP的话,还是使用单例吧

  • 相关阅读:
    数论-FTT 和 NTT
    数论-FFT高精度乘法
    树链剖分-模板题 HAOI2015
    图论-最小生成树模板
    图论-次短路求法
    图论-某图论专练 Round3 (April, 2018)
    动规-某动规专练 Round1 (April, 2018)
    动规-某动规专练 Round2 (April, 2018)
    Java IO: 并发IO
    Java IO: Reader And Writer
  • 原文地址:https://www.cnblogs.com/feng-gamer/p/11962028.html
Copyright © 2020-2023  润新知