从库中删除已弃用的功能

dog*_*ane 2 java language-agnostic api deprecated

假设我的api中有一个方法叫做foo.在我的api的下一个版本中,我想用这个方法替换bar.我该怎么做呢?

有两种选择:

1)删除foo.在发行说明中,说明此方法已被替换bar.当他们尝试使用我的新库构建时会破坏客户端,但是谁在乎呢?他们只需要自我修复.

2)foo弃用标记,并在发行说明中说明bar应该是首选.调用不推荐使用的方法时记录警告.然后在下一个版本中,foo完全删除.这为客户提供了一个小警告窗口.

你会怎么做?

Pow*_*ord 5

绝对做2.

上面的1不仅影响编译时,而且如果您的库jar被最终用户替换,导致运行时错误.