मान लीजिए कि मेरे पास व्यक्ति के ईमेल पते के लिए गेटर और सेटर विधियों के साथ एक व्यक्ति का प्रतिनिधित्व करने वाला ऑब्जेक्ट है। सेटर विधि परिभाषा कुछ इस तरह दिख सकता है:संरचनाओं वाले तारों से आप कैसे निपटते हैं?
setEmailAddress(String emailAddress)
{
this.emailAddress = emailAddress;
}
कॉलिंग person.setEmailAddress(0)
, फिर, एक प्रकार त्रुटि उत्पन्न होगा, लेकिन बुला person.setEmailAddress("asdf")
नहीं होगा - यहाँ तक कि "asdf" हालांकि एक मान्य ईमेल पता कोई रास्ता नहीं में है।
मेरे अनुभव में, तथाकथित तार लगभग कभी अक्षरों के मनमाने ढंग से अनुक्रम नहीं हैं, लंबाई या प्रारूप पर कोई प्रतिबंध नहीं है। यूआरआई दिमाग में आते हैं - सड़क के पते के रूप में, फ़ोन नंबर के रूप में, पहले नाम के रूप में ... आपको विचार मिलता है। फिर भी इन डेटा प्रकारों को अक्सर "केवल तार" के रूप में संग्रहीत किया जाता है।
मेरी व्यक्ति वस्तु में लौटने के बाद मैं इतना
setEmailAddress(EmailAddress emailAddress)
// ...
जहां EmailAddress
एक वर्ग ... जिसका निर्माता एक ईमेल पते की एक स्ट्रिंग प्रतिनिधित्व लेता है की तरह setEmailAddress()
संशोधित लगता है। क्या मैंने कुछ हासिल किया है?
ठीक है, इसलिए एक ईमेल पता एक बुरा उदाहरण है। एक यूआरआई वर्ग के बारे में क्या है जो एक यूआरआई का एक कन्स्ट्रक्टर पैरामीटर के रूप में एक स्ट्रिंग प्रस्तुति लेता है, और उस यूआरआई को प्रबंधित करने के लिए विधियों को प्रदान करता है - पथ को सेट करने, क्वेरी पैरामीटर लाने आदि। स्रोत स्ट्रिंग की वैधता महत्वपूर्ण हो जाती है।
तो मैं आप सभी से पूछता हूं, आप संरचनाओं के तारों से कैसे निपटते हैं? और आप अपने इंटरफेस में अपनी संरचनात्मक अपेक्षाओं को कैसे स्पष्ट करते हैं?
धन्यवाद।
मैंने मूल रूप से मोरेन्डिल के जवाब को स्वीकार किया, लेकिन कुछ विचार और पुन: पढ़ने के बाद, मैंने आपका स्वीकार करने का निर्णय लिया है। ऐसा नहीं है कि मैं मोरेन्डिल से असहमत हूं, लेकिन आपका उत्तर अधिक सामान्य, कम dogmatic है, और चर्चा के प्रकार के अनुरूप मैं उत्तेजित करने की उम्मीद कर रहा था। धन्यवाद! – Metaphile