Я создаю модель домена в моей системе. Должен ли я создавать интерфейсы для каждого объекта сущности при проектировании объектов моей модели? Люди говорили мне, что наш веб-уровень не должен заботиться о реализации сущности, и мы должны иметь возможность менять реализации, но я не уверен, что это когда-нибудь произойдет.
Например, если у нас есть класс Teacher, который поддерживает список студентов, метод getStudents может быть либо:
public List<Student> getStudents() {
return this.students;
}
или это:
public List<Student> getStudents() {
return someExternalService.retrieveStudents();
}
Я понимаю это преимущество, но какова общая практика?