Supongamos que tengo un objeto personalizado, Estudiante :
public class Student{
public int _id;
public String name;
public int age;
public float score;
}
Y una clase, Window , que se usa para mostrar información de un Estudiante :
public class Window{
public void showInfo(Student student);
}
Parece bastante normal, pero descubrí que Window no es fácil de probar individualmente, porque necesita un objeto real de Student para llamar a la función. Así que trato de modificar showInfo para que no acepte un objeto Student directamente:
public void showInfo(int _id, String name, int age, float score);
para que sea más fácil probar Windows individualmente:
showInfo(123, "abc", 45, 6.7);
Pero descubrí que la versión modificada tiene otros problemas:
Modificar estudiante (por ejemplo: agregar nuevas propiedades) requiere modificar la firma del método de showInfo
Si Student tuviera muchas propiedades, la firma del método de Student sería muy larga.
Entonces, usando objetos personalizados como parámetro o acepte cada propiedad en los objetos como parámetro, ¿cuál es más fácil de mantener?
int
parámetros. Desde el sitio de la llamada, no hay verificación de que realmente los esté pasando en el orden correcto. ¿Qué pasa si intercambias id
y age
, o firstName
y lastName
? Está introduciendo un posible punto de falla que puede ser muy difícil de detectar hasta que explote en su cara, y lo está agregando en cada sitio de llamada .
showForm(bool, bool, bool, bool, int)
método - Me encantan esos ...
showInfo
requiere una cadena real, un flotador real y dos entradas reales. ¿Cómo esString
mejor proporcionar unStudent
objeto real que proporcionar un objeto real ?