如何解决现有接口中的添加方法,该接口在大量类中具有不同的实现
如果我们的应用程序中有一个由大量类实现的接口,并且需要在该接口中添加一个方法,那么推荐的方法是什么?
如果我们使用的是Java的旧版本(假设1.5)与使用Java的新版本(假设1.8)相比,方法会有所不同。
解决方法
您应始终遵循"Open for extension Close for modification"
的原则
如果您添加一个新方法,那么将对实现它的所有类产生影响,因此您必须对所有人都实施该方法(无论是Java 5还是8,直到它成为默认方法),这样更好
Create a new interface and the needful classes should extend it
,
这不是一个流行的答案,但是在我看来,您所设想的操作很困难。
接口定义了不同子系统之间的服务合同。 更改应该比更改实施更困难。 Java 8在接口上引入了“默认”方法,该方法将接口从严格的契约转换为一种抽象的基类。我想可能需要采取一些措施来避免更改界面,但是我认为开发人员应该感觉到这种刺痛是正确的。
实际上,在理想的世界中,所有接口都需要事先达成协议,并且永远不需要更改接口。我想这是不切实际的,但我认为没有必要变得简单。
我认为,简短的答案是,如果您更改接口,则应思考所有已实现的类中需要进行哪些更改,咬紧牙关,然后继续进行。
,我们需要向界面添加方法
那么那就没有办法了。没有关于您要添加的内容以及原因的任何背景信息,对于您需要所做的一切,我会信服。确保确实如此。
Java 5 :添加方法。修复所有实现它的类。
您可以考虑将默认值添加到实现该接口的新抽象基类中,并使所有实现都对此进行扩展。这样,如果将来您处于相同的情况,您将拥有更轻松的时间。
Java 8:添加默认方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。