替换API /类的命名约定

时间:2009-01-22 20:57:13

标签: naming-conventions maintenance

您是否有分阶段使用的API或类的命名约定来替换执行相同功能/填充相同角色的旧版本?

E.g。 Windows通过在函数末尾添加“Ex”来实现此目的:

ShellExecute // old
ShellExecuteEx // new

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

  • 追加2V2NewNowInStereo
  • 将旧API的一次性重命名从Something重命名为SomethingOld并使用Something进行新内容的重命名?在版本控制方面,此选项让我感到担忧,但它似乎也是最不可能在将来遇到V3ReallyNew问题的负担。
  • 制作一个完全不同的名称,可能不太准确地描述功能,但至少是不同的。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

很多时候你可以通过更改包名来逃避,而不是类名本身。

答案 2 :(得分:0)

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

编辑:抱歉歪曲你的评论Josh ......

我认为如果您在创建界面时遇到了麻烦,您需要尽一切努力来维护界面。你以前在评论时想到了什么样的糟糕选择?

答案 3 :(得分:0)

仅当由于函数的新要求而更改了函数的参数时,才需要创建一个新函数。

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

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