3

在应用程序中更改接口的最佳实践是什么。如果该接口已由许多 Java 类实现,那么更改它的最佳方法是什么?你打算扩展到一个新的班级吗?你打算使用任何设计模式吗?还是您使用委托(我认为没有任何方法可以使用委托)?您是否要使用已弃用的注释?

这是最好的解决方案吗?

public interface interface1
{
}

public interface interface2 extends interface1
{
public void newMethod()
}
4

4 回答 4

3

有两种方法立即浮现在脑海中。

  1. 在您的 IDE 中,使用重构工具来更改界面。更高级的 IDE(Eclipse 可以——我不知道其他的)可以立即重构任何已知的实现。这要求受影响的项目是开放的。
  2. 您的解决方案MyInterface2 extends MyInterface也被广泛使用,因为它不会破坏现有的实现者。

如果您的解决方案出现在代码审核或审查中,我不会拒绝它 - 很好,恕我直言。

于 2012-09-21T21:34:28.603 回答
0

如果您拥有代码,那么更改接口的最佳方法是修复对它的所有引用 - 而不是留下不推荐使用的代码。

于 2012-09-21T21:33:33.373 回答
0

如果所有其他实现的类都不需要此方法interface1,那么我认为这样做可以避免重大的代码更改。

然后,下一个问题,我们是否需要这个interface2(或)只在所需的类中就足够了?

如果您不想将这个新方法定义为contract,换句话说,不需要实现其他类,那么我什至不会创建一个interface2.

于 2012-09-21T21:35:09.463 回答
0

您可以使用设计模式。可以使用抽象工厂或桥接模式

于 2012-09-21T22:17:32.733 回答