当编写一个带有 2 个对象作为参数的函数时,比如比较函数或向量求和,哪种设计模式更好?
1)在objects类里面写函数,只获取第二个object。
2)用静态函数编写一个外部类,这将获得两个对象。
为什么和何时?
当编写一个带有 2 个对象作为参数的函数时,比如比较函数或向量求和,哪种设计模式更好?
1)在objects类里面写函数,只获取第二个object。
2)用静态函数编写一个外部类,这将获得两个对象。
为什么和何时?
在 Java 中,您可以Comparable.compareTo(o1)
代表一个对象执行它并将第二个对象作为参数:
apple.compareTo(orange);
还有Comparator.compare(o1,o2)
抽象:
comparator.compare(apple, orange);
它们都没有被弃用,也没有一个被认为是更好的。它们都用于不同的场景:
Fruit
课堂上您甚至可以将它们组合起来:Fruit
只要默认顺序适合您,您就可以使用默认顺序(在内部编码)。如果有一天您需要不同的订单,请选择特定的比较器。
我相信这适用于其他类似的情况和语言。
恕我直言,来自 .NET 背景:如果任何对象可能为空,请使用静态方法。
如果第一个(左对象)一定是非空的,并且您希望继承类能够提供它们自己的相等方法的实现,请使用实例方法。