在应用程序中更改接口的最佳实践是什么。如果该接口已由许多 Java 类实现,那么更改它的最佳方法是什么?你打算扩展到一个新的班级吗?你打算使用任何设计模式吗?还是您使用委托(我认为没有任何方法可以使用委托)?您是否要使用已弃用的注释?
这是最好的解决方案吗?
public interface interface1
{
}
public interface interface2 extends interface1
{
public void newMethod()
}
有两种方法立即浮现在脑海中。
MyInterface2 extends MyInterface
也被广泛使用,因为它不会破坏现有的实现者。如果您的解决方案出现在代码审核或审查中,我不会拒绝它 - 很好,恕我直言。
如果您拥有代码,那么更改接口的最佳方法是修复对它的所有引用 - 而不是留下不推荐使用的代码。
如果所有其他实现的类都不需要此方法interface1
,那么我认为这样做可以避免重大的代码更改。
然后,下一个问题,我们是否需要这个interface2
(或)只在所需的类中就足够了?
如果您不想将这个新方法定义为contract
,换句话说,不需要实现其他类,那么我什至不会创建一个interface2
.
您可以使用设计模式。可以使用抽象工厂或桥接模式