Estoy creando el modelo de dominio en mi sistema. Al diseñar mis objetos modelo, ¿debo hacer interfaces para cada objeto de entidad? La gente me ha dicho que a nuestro nivel web no debería importarle la implementación de una entidad y que deberíamos poder cambiar implementaciones, pero no estoy seguro de que eso ocurra alguna vez.¿Los objetos del modelo deben tener interfaces?
Por ejemplo, si tenemos una clase del profesor que mantiene una lista de los estudiantes, el método getStudents podría ser:
public List<Student> getStudents() {
return this.students;
}
o esto:
public List<Student> getStudents() {
return someExternalService.retrieveStudents();
}
entiendo este beneficio, pero ¿cuál es la práctica general?
"práctica general" no es necesariamente lo mismo que "buenas prácticas", sobre todo cuando se trata de diseño OO :) – skaffman
No entiendo tu ejemplo. ¿Su pregunta es si el profesor debería implementar alguna interfaz o usar una dependencia a través de una interfaz? Tengo respuestas diferentes para estos dos casos. Tu texto me hace pensar que estás pensando en lo primero, pero el ejemplo me hace pensar que quieres lo último. ¿Qué es? –
Martinho, mi pregunta es si el profesor debería implementar una interfaz y tener las clases resultantes de TeacherImpl. – sma