这是评论中的好方法和一些解释。
public class Student{
private String name;
private String address;
public Student(String name, String address){
this.name = name;
this.address = address;
}
public void save(){
//save this instance to database.
}
public static void saveAll(List students){
//Either iterate and call save
// or do better batch insert for better performance
}
}就命名方法而言,类方法是根据其行为命名的。可以把它想象成一个学生的例子,“去把自己保存到DB”。可能还有一种方法,比如“在DB中自行更新”。
当您处理列表时,列表本身不应该是Student类的一部分。将列表保留在其他位置。但是,Student类可以有一个静态方法,它可以获取学生列表并一次性保存。
例如,学生可以在学校上课。然后
Student.saveAll(class5A.getStudents());创建一些并保存它们:
List students = new ArrayList<>();
for(int i=0;i<10;i++){
Student s = new Student("Student" + i, "Student address " + i);
students.add(s);
}
Student.saveAll(students);更进一步,学生班可能不应该大量拯救学生。所以,让我们解除它的责任,让BatchOfClass来解决这个问题。
public class Student{
private String name;
private String address;
public Student(String name, String address){
this.name = name;
this.address = address;
}
public void save(){
//save this instance to database.
}
}
public class BatchOfClass{ //Students who are in grade 6 in 2016
private String className;
private String batchName;
private List students;
public BatchOfClass(...){
}
public void save(boolean saveStudents){
//save this instance to database.
//This would also save the students to DB if saveStudents==true
}
}