重名方法怎么命名?

2020-03-20 17:43:11 +08:00
 LudwigWS
只是举个例子:

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

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

如何命名呢?我在想加一个日期后缀(getUsers_0320 )会不会给人打。
3243 次点击
所在节点    Java
29 条回复
littleylv
2020-03-20 17:45:21 +08:00
注释掉旧的方法
gongzhang
2020-03-20 17:49:27 +08:00
getUsérs(...)
ipwx
2020-03-20 17:50:47 +08:00
如果参数表一样,返回类型一样嘛?如果返回类型也一样,你提供两个方法干嘛?

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

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

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

更加强烈的建议是,为你新的方法取一个更加有意义且自解释的名字。
LudwigWS
2020-03-20 21:32:04 +08:00
@noobsheldon
@Bronya
哈哈,可以的你们

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/654656

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX