यह संभवत: कुछ ऐसा नहीं है जब आप कई वर्षों तक एक बड़े सॉफ्टवेयर प्रोजेक्ट पर काम करते हैं, जब तक आप गहराई से समझने नहीं जाते। कई नए कंप्यूटर साइंस मेजर आपको सभी सही शब्दों के साथ एक जवाब देंगे (एनकैप्सुलेशन, डेटा के साथ कार्यक्षमता, और स्थिरता) लेकिन कुछ लोग वास्तव में समझेंगे कि यह सब क्यों अच्छा है।
चलो कुछ उदाहरणों के माध्यम से चलते हैं।
- यदि सरणियों को वापस कर दिया गया था, तो या तो सभी मूल्यों को आगे की गणना करने की आवश्यकता है या बहुत कम मूल्यों को वापस करने की आवश्यकता है, जिसके साथ आप अधिक जटिल मूल्यों का निर्माण कर सकते हैं।
एक एपीआई विधि के बारे में सोचें जो वर्डप्रेस पदों की सूची लौटाती है। इन पदों में सभी लेखक हैं, लेखकों के नाम, ई-मेल पते, शायद उनकी जीवनी के साथ प्रोफाइल भी हैं।
यदि आप किसी सरणी में सभी पोस्ट वापस कर रहे हैं, तो आपको पोस्ट आईडी की एक सरणी वापस करने के लिए खुद को सीमित करना होगा:
[233, 41, 204, 111]
या एक बड़े पैमाने पर सरणी लौटाता है जो कुछ इस तरह दिखता है:
[ title: 'somePost', body: 'blah blah', 'author': ['name': 'billy', 'email': 'bill@bill.com', 'profile': ['interests': ['interest1', 'interest2', ...], 'bio': 'info...']] ]
[id: '2', .....]]
आईडी की सूची वापस करने का पहला मामला आपके लिए बहुत उपयोगी नहीं है क्योंकि तब आपको उस पोस्ट के बारे में कुछ जानकारी प्राप्त करने के लिए प्रत्येक आईडी के लिए एक एपीआई कॉल करने की आवश्यकता होती है।
दूसरा मामला 90% समय की आवश्यकता की तुलना में अधिक जानकारी खींचेगा और अधिक काम करने का तरीका होगा (खासकर यदि उन क्षेत्रों में से कोई भी निर्माण करने के लिए बहुत जटिल है)।
दूसरी ओर एक वस्तु आपको उन सभी सूचनाओं तक पहुँच प्रदान कर सकती है जिनकी आपको आवश्यकता है, लेकिन वास्तव में अभी तक उस जानकारी को नहीं खींचा है। खेतों के मूल्यों का निर्धारण आलसी (यानी, जब मूल्य की आवश्यकता हो और पहले से न हो) वस्तु का उपयोग करते समय किया जा सकता है।
- Arrays इरादा से अधिक डेटा और क्षमताओं को उजागर करता है
बड़े पैमाने पर दिए गए सरणी के उदाहरण पर वापस जाएं। अब कोई संभवत: एक ऐसे एप्लिकेशन का निर्माण कर सकता है जो पोस्ट एरे के अंदर प्रत्येक मान पर आधारित हो और उसे प्रिंट करता हो। अगर एपीआई को उस पोस्ट सरणी में सिर्फ एक अतिरिक्त तत्व जोड़ने के लिए अपडेट किया जाता है, तो एप्लिकेशन कोड टूटने वाला है क्योंकि यह कुछ नए फ़ील्ड को प्रिंट कर रहा होगा जो कि शायद नहीं होना चाहिए। अगर API द्वारा लौटाए गए पोस्ट ऐरे में आइटम्स का क्रम बदल जाता है, तो इससे एप्लिकेशन कोड भी टूट जाएगा। इसलिए एक सरणी लौटने से सभी प्रकार की संभव निर्भरताएं बनती हैं जो एक वस्तु नहीं बनाएगी।
एक वस्तु इसके अंदर जानकारी रख सकती है जो इसे आपके लिए उपयोगी कार्यक्षमता प्रदान करने की अनुमति देगी। एक पोस्ट ऑब्जेक्ट, उदाहरण के लिए, पिछले या अगले पोस्ट को वापस करने के लिए पर्याप्त स्मार्ट हो सकता है। एक सरणी कभी भी आपके लिए ऐसा नहीं कर सकती है।
उपरोक्त वर्णित सभी वस्तुओं के लाभ अधिक लचीली प्रणाली बनाने में मदद करते हैं।
count()याarray_*()कार्य करने में सक्षम नहीं होना (कम से कम भंडारण / वापसी कुंजी => मूल्य डेटा के संबंध में)। कोई भी इसका उल्लेख नहीं करता है, या मैं कुछ याद कर रहा हूं?