java - java中mutator方法的最佳实践

标签 java refactoring

我编写了一个对自定义对象 Collection.sort 的 ArrayList 进行排序的函数。

public List<Student> getStudents(int std) {
    List<Student> students = studentDAO.getStudents(std);
    ......
    sortStudents(students);
    .....
    return students;
}

private void sortStudents(students) {
    Collection.sort(students, new Comparator<Student>(){
        public int compare(Student s1, Student s2) {
            return s1.getDOB().compareTo(s2.getDOB());
        }
    });
}

上面的代码干净吗? 可以编写这样的更改器(mutator)还是应该使用一个新对象并返回它?

最佳答案

这取决于 studentDAO.getStudents() 方法的约定 - 它是否保证始终返回新的结果列表(即只有调用者可以引用的对象)?如果是这样,那么您可以安全地将其分类到位。如果没有,您应该复印一份。

另一个问题是——它总是能保证这一点吗?可能出错的多种方式之一是如果您添加一些缓存 - 这很容易破坏这种保证。

关于java - java中mutator方法的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33515838/

相关文章:

java - Axis2 测试客户端错误

java - Apache Camel 的 REST 端点

javascript - 根据特定键值对 JavaScript 对象重新排序

refactoring - 不断重构我自己的代码......一个非常糟糕的做法

java - 处理控制台命令的最佳 Java 设计模式

java - Android Studio - java.io.IOException : Failed to generate v1 signature

java - 如何从 JSON 字符串中获取每个值

javascript - 当需要类似 sleep 的功能时如何重构 javascript 代码?

java - 如何将对 new 的调用重构为带参数的方法调用?

c# - 重构嵌套类 - 移动到单独的文件 - visual studio 2008