मान लीजिए कि मेरे पास एक कस्टम ऑब्जेक्ट है, छात्र :
public class Student{
public int _id;
public String name;
public int age;
public float score;
}
और एक वर्ग, विंडो , जिसका उपयोग किसी छात्र की जानकारी दिखाने के लिए किया जाता है :
public class Window{
public void showInfo(Student student);
}
यह काफी सामान्य दिखता है, लेकिन मैंने पाया कि विंडो को व्यक्तिगत रूप से परीक्षण करना काफी आसान नहीं है, क्योंकि इसे फ़ंक्शन को कॉल करने के लिए एक वास्तविक छात्र ऑब्जेक्ट की आवश्यकता होती है। इसलिए मैं showInfo को संशोधित करने का प्रयास करता हूं ताकि यह सीधे एक छात्र ऑब्जेक्ट को स्वीकार न करे :
public void showInfo(int _id, String name, int age, float score);
ताकि व्यक्तिगत रूप से विंडो का परीक्षण करना आसान हो :
showInfo(123, "abc", 45, 6.7);
लेकिन मुझे लगा कि संशोधित संस्करण में एक और समस्या है:
छात्र को संशोधित करें (जैसे: नई संपत्तियाँ जोड़ें) को शो-इन की विधि-हस्ताक्षर को संशोधित करने की आवश्यकता है
यदि छात्र के पास कई गुण हैं, तो छात्र का विधि-हस्ताक्षर बहुत लंबा होगा।
तो, कस्टम ऑब्जेक्ट्स को पैरामीटर के रूप में उपयोग करना या ऑब्जेक्ट में प्रत्येक प्रॉपर्टी को पैरामीटर के रूप में स्वीकार करना, जो एक अधिक रखरखाव योग्य है?
int
पैरामीटर हैं। कॉल साइट से, कोई सत्यापन नहीं है कि आप वास्तव में उन्हें सही क्रम में पास कर रहे हैं। क्या होगा अगर आप स्वैप id
और age
, या firstName
और lastName
? आप विफलता के एक संभावित बिंदु का परिचय दे रहे हैं, जिसका पता लगाना बहुत कठिन हो सकता है, जब तक कि यह आपके चेहरे पर न उड़ जाए, और आप इसे हर कॉल साइट पर जोड़ रहे हैं ।
showForm(bool, bool, bool, bool, int)
विधि - मैं उन लोगों से प्यार करता हूं ...
showInfo
लिए एक वास्तविक स्ट्रिंग, एक वास्तविक फ्लोट और दो वास्तविक इनट्स की आवश्यकता होती है। एक वास्तविकString
वस्तु प्रदान करने से बेहतर कैसे एक वास्तविक वस्तु प्रदान कर रहाStudent
है?