我使用的是 Java 1.7。我在 .jar 中有一个类 "ItemFactory"
,它允许其他开发人员创建 Item 对象(item 有一个私有(private)构造函数)。工厂需要一些用户输入来创建某些项目。最近我添加了一些也需要输入的项目,但所有必要的数据已经存在于系统中。我认为开发人员让我的 "ItemHandler"
类自动创建这些项目会更容易。因此,让他们输入以下内容:
ItemFactory factory = new ItemFactory();
Item item = factory.createItem(parameter1, parameter2);
ItemHandler handler = new ItemHandler();
handler.doSomethingCool(item);
他们可以简单地这样做:
handler.doSomethingCool()
并且 doSomethingCool()
方法将从工厂自动生成该项目,因为所有必要的输入都已存在于系统中。
我现在的问题是 facotry 类突然具有不应该可见的公共(public)方法。例如,公共(public)方法 createItemForSomethingCoolPurposes() 是由系统本身自动调用的,开发人员需要担心它。他们看到这个方法可能会感到困惑,因为不清楚它的目的是什么。添加注释/文档来表达“不应调用此方法”似乎很愚蠢。我在这件事上有错吗?这是一个常见问题吗?有相关约定吗?
最佳答案
只需使用不再公共(public)
的旧代码重构这些方法。如果您无法这样做,因为您无法使用 api 控制代码,请标记这些方法 @Deprecated
并添加注释,表明在下一个版本中它将被删除。因此,您只需传达您删除 public
方法的意图,然后在每个人重构其代码后,您就可以删除代码。
这也是 java sdk 的开发人员正在做的事情。他们标记过时的代码 @Deprecated
为新代码添加链接和示例,并在下一个版本中删除过时的代码。
关于java - 将类中的方法标记为 "should not be invoked because the system already does this automatically"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306458/