Özel bir nesnem olduğunu varsayalım Öğrenci :
public class Student{
public int _id;
public String name;
public int age;
public float score;
}
Ve bir öğrencinin bilgilerini göstermek için kullanılan bir sınıf, Pencere :
public class Window{
public void showInfo(Student student);
}
Oldukça normal görünüyor, ancak Window'un tek tek test etmenin kolay olmadığını gördüm çünkü işlevi çağırmak için gerçek bir Student nesnesine ihtiyaç duyuyor . Bu yüzden showInfo öğesini doğrudan Student nesnesini doğrudan kabul etmeyecek şekilde değiştirmeye çalışıyorum :
public void showInfo(int _id, String name, int age, float score);
Pencereyi tek tek test etmek daha kolay :
showInfo(123, "abc", 45, 6.7);
Ancak değiştirilmiş versiyonun başka problemleri olduğunu buldum:
Öğrenci Değiştir (örneğin: yeni özellikler ekle) showInfo yönteminin imzasını değiştirmeyi gerektirir
Eğer Öğrenci birçok özelliğe sahipse, Öğrenci metodunun imzası çok uzun olacaktır.
Öyleyse, özel nesneleri parametre olarak kullanmak veya nesnelerdeki her özelliği parametre olarak kabul etmek, hangisi daha iyi korunabilir?
int
parametreniz var. Çağrı sitesinden, onları doğru sırayla geçirdiğiniz doğrulanmadı. Ya takas yaparsanız id
ve age
, ya da firstName
ve lastName
? Yüzünüze patlayana kadar tespit edilmesi çok zor olabilecek potansiyel bir başarısızlık noktası ortaya koyuyorsunuz ve her arama sitesine ekliyorsunuz .
showForm(bool, bool, bool, bool, int)
yöntem - Ben onları seviyorum ...
showInfo
gerçek bir String, gerçek bir float ve iki gerçek giriş gerektirir. Gerçek birString
nesneyi gerçek bir nesneyi sağlamaktan daha iyi nasıl sağlarStudent
?