4

假设我正在扩展JFileChooser并制作一个易于使用的版本,我称之为SimpleFileChooser.

它的结构使得它可以是DIALOG_TYPE_OPENDIALOG_TYPE_SAVE——因此,JFileChooser'sshowOpenDialog()showSaveDialog()方法是多余的。我用一个showDialog()返回布尔值的方法替换它们,但这是我发现自己陷入困境的地方:

我是否应该覆盖打开/保存方法@Deprecated并向它们添加标签,以便 API 用户知道它们已被取代?这会违反注释的最初目的吗?

或者文档中的通知就足够了?如果是这样,这个通知应该放在哪里:在类摘要中还是在被覆盖的方法之上?我什至应该首先覆盖这些方法吗?

提前致谢。

4

2 回答 2

8

我认为您实际上是在构建一个,即现有 API 的简化版本。因此,您应该使用组合而不是继承。将原始内容隐藏在JFileChooser新类中并提供更简单的 API。

作为最后的手段,public JFileChooser getRaw()如果其他代码需要它,您可以提供访问包装对象的方法。

于 2012-11-05T21:07:35.970 回答
1

@Deprecated 表示您不应再使用该特定类或方法,因为将来它将被删除。该注释就是为此而设计的。因此,简短地回答一下,如果您不希望 API 用户再使用该方法,您应该使用 @Deprecated。因为否则您最终会得到仍然使用您在未来构建中删除的方法/类的用户,并且他们的项目在更新时将被破坏。

于 2012-11-05T21:08:21.660 回答