【发布时间】:2017-12-19 09:50:45
【问题描述】:
我想知道为什么java Java 提供了两个不同的接口(Comparable/Comparator)来比较对象。我认为与其证明一个新的接口(Comparator)来比较具有多个属性的对象,Java可以简单地扩展“Comparable”接口来实现“Comparator”接口逻辑。
我们不能仅通过使用“Comparable”来实现相同的目标吗? .假设某个第 3 方通过首先实现“可比较”来编写比较逻辑。 为什么我们不能用“Comparable”实现一个新类并将可比较实例传递给排序 API?
两者都是在同一个 Java 版本 1.2 中引入的。我无法理解为什么两个不同的接口来实现相同的功能。
【问题讨论】:
-
@Bathsheba ,我的问题是,为什么 Java 是这样设计的?这与何时使用比较器和可比较性无关。而且这与比较器和可比较器之间的区别无关。请理解我的问题。
-
我的问题是,为什么Java是这样设计的?
-
我猜这不是基于意见的。这应该有一些强有力的理由,有人可能知道我们不知道。
-
因为这两个接口都是在同一个 Java 版本 1.2 中引入的。我不明白为什么要实现一个功能需要两个不同的界面。
标签: java oop design-patterns interface abstract-class