java - 有多种方法做同样的事情

标签 java oop coding-style

我们正在创建一个 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/

相关文章:

java - 我需要使用没有一些参数的自定义类

javascript - 调用 Javascript 类中的方法时出错

coding-style - 当参数拆分为多行时,阻止 PhpStorm 在函数声明后添加新行

java - 我应该使用大写命名来声明 java 常量变量吗?

java - hibernate 自动发现并生成 POJO 的数据库映射

java - 让 AutoCompleteTextView 响应 SimpleAdapter 中的更改

java - 可以在Java文件中创建自定义折叠区域吗?

php - PHP 中的异常消息

tomcat - Tomcat下应用运行的环境变量

java - 为什么按 'false' 不会打破这个 java 循环?