我应该@Deprecate超类方法吗?

Kon*_*tin 4 java oop inheritance overriding deprecated

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

它被构造为使得它可以是DIALOG_TYPE_OPENDIALOG_TYPE_SAVE-因此,JFileChoosershowOpenDialog()showSaveDialog()方法是多余的.我用一个叫做showDialog()返回布尔值的方法替换它们,但这就是我发现自己处于两难境地的地方:

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

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

提前致谢.

Tom*_*icz 8

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

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