V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
codingbody
V2EX  ›  Java

Java static 方法

  •  
  •   codingbody · 2020-11-14 13:25:09 +08:00 · 2332 次点击
    这是一个创建于 1256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    你们 Java 项目中,statci 方法用的多么?

    我现在做的项目,是一个纯 Java 后端,只有一个 netty,没有 spring

    业务中各种 static 方法。

    10 条回复    2020-11-14 19:36:46 +08:00
    oneisall8955
        1
    oneisall8955  
       2020-11-14 13:30:50 +08:00 via Android
    util 一大堆 static 方法无所谓,都是面向过程编程。但有些情况确实需要设计模式,其中肯定涉及封装继承多态,static 就不能满足了。
    sonice
        2
    sonice  
       2020-11-14 14:18:59 +08:00
    没有面向对象思维又需要快速产出,static 方法写一大堆,保证流程能跑通。以上就是我的现状。
    EminemW
        3
    EminemW  
       2020-11-14 14:24:05 +08:00 via iPhone
    可以试试 guice 轻量级依赖注入框架
    chendy
        4
    chendy  
       2020-11-14 15:04:29 +08:00
    static 同时只能有一种状态,没有多态
    如果没有这些需求 static 就能用,一般工具类,静态工厂方法之类的符合
    nl101531
        5
    nl101531  
       2020-11-14 17:58:10 +08:00 via iPhone
    不能没了 Spring,就不会写代码了。。。
    janus77
        6
    janus77  
       2020-11-14 18:20:30 +08:00
    一个方法解答你:你的那些 static 方法,有多少可以变成非 static 而不影响原结果?
    换句话说,有多少是必须 static 的?
    如果必须 static 的占比很大,那就得好好考虑一下代码了
    mtmax
        7
    mtmax  
       2020-11-14 18:47:19 +08:00
    static 不够面向对象
    Xbluer
        8
    Xbluer  
       2020-11-14 18:48:02 +08:00
    这种情况其实就是在用 java 写 c 的代码,换个语法规则而已。
    VishvaWang
        9
    VishvaWang  
       2020-11-14 19:10:45 +08:00 via Android
    @janus77 难道不应该是你哪些实例方法,有多少可以写成静态方法而不影响结果的?不要为了面向对象而面向对象
    dustinth
        10
    dustinth  
       2020-11-14 19:36:46 +08:00
    单指对于过程式的逻辑实现, 没有本质区别. 区别主要在于 static 方法的物理性质, 决定了 static 方法无法很好进行 unit 测试以及模块之间的 integration test. 所有 static 方法改成用 instance 方法来实现并不需要多大的工作量, 带来的好处是可预见的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3653 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:32 · PVG 12:32 · LAX 21:32 · JFK 00:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.