假设我正在扩展JFileChooser
并制作一个易于使用的版本,我称之为SimpleFileChooser
。
它的结构可以是DIALOG_TYPE_OPEN
或DIALOG_TYPE_SAVE
- 因此,JFileChooser
的{{1}}和showOpenDialog()
方法是多余的。我用一个名为showSaveDialog()
的方法替换它们,它返回一个布尔值,但这就是我发现自己处于两难境地的地方:
我应该覆盖打开/保存方法并添加
showDialog()
标记 它们以便API用户知道它们已经被取代了?会是 违反注释的original purpose?或者文档中的通知是否足够?如果是的话,应该在哪里 此通知应放在:在课程摘要中或在上面覆盖 方法?我是否应该首先覆盖这些方法?
提前致谢。
答案 0 :(得分:8)
我认为您实际上正在构建facade,这是现有API的简化版本。因此,您应该使用合成而不是继承。隐藏新类中的原始JFileChooser
并提供更简单的API。
作为最后的手段,如果其他代码需要,您可以提供public JFileChooser getRaw()
方法来访问包装对象。
答案 1 :(得分:1)
@Deprecated表示您不应再使用该特定类或方法,因为它将来会被删除。该注释是为此而设计的。 所以很快回答,如果你不想让API用户再使用这个方法,你应该使用@Deprecated。因为否则您将最终使用仍在使用您在将来版本中删除的方法/类的用户,并且他们的项目在更新时将被破坏。