사용자 정의 객체 Student 가 있다고 가정합니다 .
public class Student{
public int _id;
public String name;
public int age;
public float score;
}
그리고 학생의 정보를 표시하는 데 사용되는 Window 클래스 는 다음과 같습니다.
public class Window{
public void showInfo(Student student);
}
그것은 정상적인 것처럼 보이지만 Window 는 함수를 호출 하는 실제 Student 객체가 필요하기 때문에 개별적으로 테스트하기가 쉽지 않다는 것을 알았 습니다 . 따라서 학생 객체를 직접 허용하지 않도록 showInfo를 수정하려고합니다 .
public void showInfo(int _id, String name, int age, float score);
Window를 개별적 으로 테스트하는 것이 더 쉽습니다 .
showInfo(123, "abc", 45, 6.7);
그러나 수정 된 버전에 다른 문제가 있음을 발견했습니다.
학생 수정 (예 : 새 속성 추가)은 showInfo의 메소드 서명을 수정해야합니다.
만약 학생이 많은 속성을 가지고 있다면, 학생의 방법 서명은 매우 길 것입니다.
따라서 사용자 정의 객체를 매개 변수로 사용하거나 객체의 각 속성을 매개 변수로 사용하면 어느 것이 더 유지 관리가 용이합니까?
int
매개 변수가 있습니다. 콜 사이트에는 실제로 올바른 순서로 전달하고 있는지 확인할 수 없습니다. 만약 당신이 id
and age
, 또는 firstName
and lastName
? 얼굴이 터질 때까지 감지하기 어려울 수있는 잠재적 인 실패 지점을 도입하고 있으며 모든 콜 사이트에 이를 추가하고 있습니다 .
showForm(bool, bool, bool, bool, int)
방법-나는 그것들을 사랑합니다 ...
showInfo
에는 실제 문자열, 실수 부동 소수점 및 두 개의 정수가 필요합니다. 실제String
객체를 제공하는 것보다 실제 객체를 제공하는 것이 어떻게 더 낫Student
습니까?