Припустимо, у мене є власний об'єкт, студент :
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, щоб він не приймав об'єкт Student безпосередньо:
public void showInfo(int _id, String name, int age, float score);
щоб простіше було тестувати Window індивідуально:
showInfo(123, "abc", 45, 6.7);
Але я виявив, що в модифікованій версії є й інші проблеми:
Змінення Student (наприклад, додавання нових властивостей) потребує зміни методу-підпису showInfo
Якби Студент мав багато властивостей, метод-підпис Студента був би дуже довгим.
Отже, використовуючи власні об’єкти як параметр або приймати кожну властивість в об'єктах як параметр, який із них можна підтримувати?
int
параметри. На сайті виклику немає підтвердження того, що ви насправді передаєте їх у правильному порядку. Що робити , якщо потрібно поміняти місцями id
і age
, або firstName
і lastName
? Ви представляєте потенційну точку відмови, яку можна дуже важко виявити, поки вона не підірветься вам в обличчя, і ви додаєте її на кожен сайт дзвінка .
showForm(bool, bool, bool, bool, int)
метод - я люблю тих ...
showInfo
вимагає справжньої струни, справжнього поплавця та двох справжніх ints. Як забезпечення реальногоString
об'єкта краще, ніж надання реальногоStudent
об'єкта?