模型对象应该有接口吗?
我正在我的系统中创建域模型。在设计模型对象时,是否应为每个实体对象创建接口?人们告诉我,我们的Web层不应该关心实体的实现,我们应该能够交换实现,但我不确定这是否会发生。
例如,如果我们有一个维护学生列表的教师班级,则 getStudents 方法可以是:
public List<Student> getStudents() {
return this.students;
}
或者这个:
public List<Student> getStudents() {
return someExternalService.retrieveStudents();
}
我理解这种好处,但一般的做法是什么?