LudwigWS
V2EX  ›  Java

重名方法怎么命名?

  •  
  •   LudwigWS · Mar 20, 2020 · 4262 views
    This topic created in 2268 days ago, the information mentioned may be changed or developed.
    只是举个例子:

    1.有一个旧的 getUsers(...) 方法;
    2. 如果参数表是一样的

    我不想删了这个旧的方法。

    如何命名呢?我在想加一个日期后缀(getUsers_0320 )会不会给人打。
    29 replies    2020-03-21 17:28:20 +08:00
    U7Q5tLAex2FI0o0g
        1
    U7Q5tLAex2FI0o0g  
       Mar 20, 2020
    注释掉旧的方法
    gongzhang
        2
    gongzhang  
       Mar 20, 2020 via iPhone   ❤️ 12
    getUsérs(...)
    ipwx
        3
    ipwx  
       Mar 20, 2020
    如果参数表一样,返回类型一样嘛?如果返回类型也一样,你提供两个方法干嘛?

    如果返回类型不一样,改名字啊。我就不行你两个类型名字都一样,用新的返回类型名构造方法名称不就行了。
    ayase252
        4
    ayase252  
       Mar 20, 2020 via iPhone
    为什么会同样命名,同名在我的思维里就是两个函数做了完全相同的工作
    littlewing
        5
    littlewing  
       Mar 20, 2020
    getUsersV2
    also24
        6
    also24  
       Mar 20, 2020
    按道理来说,这是代码版本管理需要处理的事情,你只需要在 commit message 里写清楚对旧方法做了什么处理。

    实际中,如果很希望留下旧方法的尸体,建议直接注释掉,而不是简单的改名。
    这样可以明确的传达出本方法已经『废弃』,避免再生枝节。

    当然你也可以使用 @Deprecated 注解进行标注,但是…… 不是每个人都会去看 warn
    also24
        7
    also24  
       Mar 20, 2020
    似乎不小心 @ 到了人…… 非常抱歉……
    catinsides
        8
    catinsides  
       Mar 20, 2020
    plus pro ...
    Mutoo
        9
    Mutoo  
       Mar 20, 2020   ❤️ 1
    新的方法还叫 getUsers()
    旧的方法移到 deprecated namespace 里去。
    fihserman123
        10
    fihserman123  
       Mar 20, 2020
    要不你试试适配器模式
    xujinkai
        11
    xujinkai  
       Mar 20, 2020
    deprecated +1
    noobsheldon
        12
    noobsheldon  
       Mar 20, 2020
    获取用户()
    learningman
        13
    learningman  
       Mar 20, 2020 via Android
    加一个默认参数,不调用这个参数的时候执行旧方法,调用这个参数的时候执行新方法。
    noobsheldon
        14
    noobsheldon  
       Mar 20, 2020   ❤️ 2
    西班牙风情: obtenerUsuarios(), 法兰西味道:
    ObtenirDesUtilisateurs, 伏特加:
    получить пользователей() /doge
    Nimrod
        15
    Nimrod  
       Mar 20, 2020 via Android
    getUserV2?
    az467
        16
    az467  
       Mar 20, 2020 via Android   ❤️ 1
    getUsersGracefully()
    ragnaroks
        17
    ragnaroks  
       Mar 20, 2020
    就方法 private,新同名方法进行判断,如果参数符合老方法的使用条件,就 return 老方法,否则使用新方法
    Bronya
        18
    Bronya  
       Mar 20, 2020 via Android
    Ex, Plus, Pro, One, Odyssey, ...😏
    sicauxeon
        19
    sicauxeon  
       Mar 20, 2020   ❤️ 1
    方法名和参数表都一样的情况下,而且不打算重构。那么可以方法名加个 V2 后缀,当然这绝对不是最优的解决办法,但是比添加时间后缀要好。

    更加强烈的建议是,为你新的方法取一个更加有意义且自解释的名字。
    LudwigWS
        20
    LudwigWS  
    OP
       Mar 20, 2020
    @noobsheldon
    @Bronya
    哈哈,可以的你们
    forgottencoast
        21
    forgottencoast  
       Mar 20, 2020
    getUser2
    yousabuk
        22
    yousabuk  
       Mar 20, 2020
    getUser2
    lonewolfakela
        23
    lonewolfakela  
       Mar 20, 2020
    其实可以按微软风在新函数名字后面加个 Ex……
    ericgui
        24
    ericgui  
       Mar 21, 2020
    getUsers2()
    xingheng
        25
    xingheng  
       Mar 21, 2020
    #21 #22 如果我看到加 2 这种做法一定往死里打
    #23 加 Ex 一般是定义两个相同功能但参数列表不同的成对方法


    如果是功能和之前的 getUsers 基本相同,参数列表也相同,建议不要写一个新方法出来,直接在原来的实现上改写。
    如果功能不相同,建议不要加任何“通用型”等无意义的后缀,直接 getXXXUsers 之类的,以示区分。
    longjiahui
        26
    longjiahui  
       Mar 21, 2020
    coderEOS
        27
    coderEOS  
       Mar 21, 2020 via Android
    脚本语言的话可以 getXXX = getUsers,引用 function
    chen1164162915
        28
    chen1164162915  
       Mar 21, 2020
    getUsersV1
    getUsersV2
    getUsersV3
    retanoj
        29
    retanoj  
       Mar 21, 2020 via iPhone
    我见过好多 v2 的。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3151 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 106ms · UTC 03:24 · PVG 11:24 · LAX 20:24 · JFK 23:24
    ♥ Do have faith in what you're doing.