为什么在Java 8中向接口添加默认方法是一个不错的设计选择,还有哪些替代方案
我只是在学习Java,所以我很难获得可能的替代方案,以及这种设计决策的影响。
Java 8 将默认方法功能添加到接口中,这允许接口具有实现。这允许使用新方法扩展现有接口,而不会破坏客户端,随着时间的推移以向后兼容的方式发展接口。但是,给定默认实现,此类扩展受到一定限制,并且很可能使用接口或库方法的现有接口方法实现。所以我的问题是
- 为什么引入此语言功能?
- 它支持哪些关键新功能?(例如拆分器)
- 还有哪些其他替代方案来支持这些语言功能?例如,为什么不创建一个扩展迭代的新接口 SplitIterable?
- 实现这些替代方案(接口的污染)会产生什么影响?
- 当可以在接口的第一版中为方法提供默认实现时,是否可以将其实现为其他方法的组合?