मेरे पास विधि List<Foo> getFoos()
है जो दूरस्थ सर्वर से डेटा प्राप्त करता है और इसे लौटाता है।क्या यह अप्रचलित सूची लौटने के लिए स्वीकार्य है या क्या मुझे सरणी वापस करनी चाहिए?
बेशक, उपयोगकर्ता को सूची के आइटमों की संख्या में बदलाव नहीं करना चाहिए क्योंकि वह डेटा को सर्वर पर डेटा के साथ सिंक्रनाइज़ नहीं करेगा (और यदि वह आइटमों की संख्या बदलना चाहता है तो उसके पास addFoo()
जैसे विशेष तरीके हैं)।
पहला दृष्टिकोण सरणी वापस करने और Foo[] getFoos()
पर विधि के हस्ताक्षर को बदलने के लिए था। लेकिन यह जावा में अधिक आम है और संग्रह के साथ काम करने के लिए उपयोगकर्ता के लिए अधिक सुविधाजनक है इसलिए मैंने List<Foo> getFoos()
पर हस्ताक्षर बदल दिया। इस विधि हमेशा
Collections.unmodifiableList (originalList)
तो देता है, जब उपयोगकर्ता सूची वह RuntimeException मिल जाएगा बदलने की कोशिश।
क्या इसी तरह के मामलों में एपीआई डिज़ाइन के बारे में कोई सिफारिशें हैं?
मुझे और अधिक परवाह है कि क्या यह उपयोगकर्ताओं को भ्रमित करता है और उन्हें लगता है कि वे सूची को संशोधित कर सकते हैं और सभी सिंक्रनाइज़ेशन सामग्री स्वचालित रूप से की जाएगी (सर्वर का मतलब है सिंक)। – Roman
बेशक, पहले RuntimeException के बाद सभी उलझन में उपयोगकर्ता निश्चित रूप से समझेंगे कि वे इसे इतना आसान नहीं कर सकते हैं :) – Roman
@Roman आपके दस्तावेज़ में आपको केवल एक अपरिहार्य सूची लौटा दी जा रही है। – Poindexter