1

您是否对正在逐步采用以替换执行相同功能/担任相同角色的旧版本的 API 或类的命名约定?

例如,Windows 通过在函数末尾添加“Ex”来做到这一点:

ShellExecute // old
ShellExecuteEx // new

你更喜欢什么,你的理由是什么?

  • 附加2, V2, New, NowInStereo?
  • 将旧 API 一次性重命名为SomethingtoSomethingOldSomething用于新的东西?当涉及到版本控制时,这个选项让我很担心,但它似乎也最不可能在未来被一个V3ReallyNew问题所困扰。
  • 组成一个完全不同的名称,可能不太准确地描述功能,但至少是不同的。
4

4 回答 4

1

很多时候,您可以通过更改包名而不是类名本身来摆脱困境。

于 2009-01-23T14:45:15.367 回答
0

为什么要改变它?接口就是它们的契约,你为什么要在一切都使用它之后破坏接口。

编辑:很抱歉打扰您的评论乔什......

我认为,如果您费心创建界面,您需要尽一切努力维护它。你之前评论的时候在想什么样的错误选择?

于 2009-01-22T21:04:01.873 回答
0

如果新类执行与旧类相同的功能,我将删除旧类并用同名的新类替换它。如果需要,我仍然可以在版本控制中查阅旧版本。

于 2009-01-22T21:06:45.630 回答
0

如果函数的参数由于对函数的新要求而发生更改,您只需要创建一个新函数。

API 的最佳命名约定是 API 用户所期望的。如果 API 仅在 Windows 上使用,则添加 Ex(或 Ex2 用于下一个版本)可能是合适的。我不知道其他平台上的其他约定。此外,您的编程语言可能有扩展 API 方法的约定。

如果您使用的是面向对象的语言并且这是一个对象方法,则不必更改名称,因为您可以拥有具有相同名称和不同签名的方法。但是,提供一个新名称以让用户知道您希望他们迁移到新方法可能仍然有意义。

于 2019-06-19T21:35:01.687 回答