当您必须对已经有一些用户的 API 进行更改时,最好的方法可能是弃用旧的 API 调用并鼓励使用新的调用。
删除旧 API 调用的功能可能会破坏旧代码的功能,因此这可能会导致一些使用您的“旧”API 的开发人员变得有些不满意。
如果您的语言提供了指示某些功能已被弃用的方法,它可以作为用户停止使用旧 API 调用并转而使用新调用的指示。在 Java 中,@deprecatedjavadoc 标记可以在文档中提供已弃用功能的注释,或者从 Java 5 开始,@Deprecated注释可用于在调用已弃用的 API 功能时引发编译时警告。
此外,提供一些关于从旧 API 迁移到新 API 的提示和提示可能是一个好主意,以鼓励人们使用与 API 交互的新方式。有了关于做什么和不做什么的示例和示例代码,API 的用户将能够根据新的、首选的方式编写代码。
更改公共 API 将很困难,但在从旧到新的过渡过程中要小心,我相信它可以在一定程度上减轻 API 用户所承受的痛苦。
这是一篇关于如何以及何时从 Sun 弃用 API 的文章,该文章可能会提供更多关于何时适合弃用部分 API 的信息。
另外,感谢 David Schmitt,他补充说 .NET 中的Obsolete属性类似于@DeprecatedJava 中的注解。(不幸的是,编辑被我的编辑覆盖了,因为我们都在同时编辑这个答案。)