LudwigWS
V2EX  ›  Java

重名方法怎么命名?

  •  
  •   LudwigWS · Mar 20, 2020 · 4753 views
    This topic created in 2424 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
    U7Q5tLAex2FI0o0g
    Mar 20, 2020
    1
    注释掉旧的方法
    gongzhang
    gongzhang
    Mar 20, 2020 via iPhone❤️12
    2
    getUsérs(...)
    ipwx
    ipwx
    Mar 20, 2020
    3
    如果参数表一样,返回类型一样嘛?如果返回类型也一样,你提供两个方法干嘛?

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

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

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

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


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