我们正在创建一个 SDK。 我与一位伙伴进行了讨论,因为他说最好使用不同的方法来执行相同的操作,但略有不同,而不是使用带有改变其行为的标志的方法。 我将展示一个与我们讨论的类似的例子。
如果 SDK 的方法之一将对集合进行排序,则当前实现包含一个具有可能的排序算法的枚举。
public enum Algorithm {
BUBBLESORT,
QUICKSORT
}
和一个接口(interface)
interface Sorting {
Collection sort(Collection input, Algorithm alg);
}
我的伙伴的方法是使用与算法一样多的排序方法
interface Sorting {
Collection quickSort(Collection input);
Collection bubbleSort(Collection input);
}
他说将算法作为参数很奇怪。 你怎么认为?对于除排序之外的其他场景,对于同一特征使用多种方法是否更好?
最佳答案
interface Sorting {
Collection sort(Collection input);
}
class Quicksort : Sorting {
Collection sort(Collection input) {
}
}
class BubbleSort: Sorting {
Collection sort(Collection input) {
}
}
关于java - 有多种方法做同样的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61784883/