मैं कैसे संकेत दे सकता हूं कि एक विधि यूएमएल में वस्तुओं का संग्रह वापस कर देगी? क्या संग्रह वर्ग को रिटर्न प्रकार के रूप में रिश्ते की व्याख्या करने का कोई बेहतर तरीका है?यूएमएल - ऑब्जेक्ट विधि संग्रह संग्रह करता है
उत्तर
आप "एसोसिएशन" का उपयोग करने पर विचार कर सकते हैं। एसोसिएशन के तीन मूल प्रकार हैं: रचना, एकत्रीकरण और "सामान्य" एसोसिएशन। उनमें से प्रत्येक भाग के लिए पूरी तरह से एक अलग अस्तित्व निर्भरता व्यक्त करता है और इसके विपरीत।
आमतौर पर संघों को एक पंक्ति से दो वर्गों को जोड़कर व्यक्त किया जाता है। संरचना और एकत्रीकरण में समग्र/समेकित पक्ष में एक हीरा प्रतीक होता है। समग्र/कुल में एक या अधिक भाग होते हैं।
उदाहरण (wiki-article देखें): लाइब्रेरी, पुस्तक:
Immagine आप दो वर्गों की है। हम कह सकते हैं कि लाइब्रेरी पूरी है और हिस्सा बुक करें। हम इसे इस तरह से सूचित कर सकते हैं (ASCII में, कृपया असली आरेखों के लिए Google)।
लाइब्रेरी (सकल) <> --- बुक (भाग)
आप को व्यक्त करने के इन रिश्तों संघ अपने दोस्त हो जाएगा चाहते हैं।
संपादित करें:
जैसा कि मैंने टिप्पणी में कहा, मुझे नहीं लगता कि लौटे संग्रह के लिए एक विशेष अंकन है है। हालांकि, आप सही हैं, संग्रह वापस करना थोड़े भाषा विशिष्ट है। लेकिन आप एक सरणी (String[]
) वापस करने पर विचार कर सकते हैं, जो मूल्यों के एक समूह का प्रतिनिधित्व करने का एक और सामान्य तरीका है और संग्रह से अधिक भाषा स्वतंत्र होना चाहिए। यह तब प्रोग्रामर तक है कि वह इसे कैसे लागू करता है। वह Collection
, एक सी ++ एसटीएल वेक्टर का उपयोग कर सकता है ... बिंदु है: मानों का एक सेट वापस करें।
सही, लेकिन मैं कैसे इंगित करूंगा कि एक विधि उस संगठन को वापस कर रही है? – derekerdmann
आमतौर पर एक विधि कक्षा के __behaviour__ को परिभाषित करती है। इसलिए यह व्यक्त करने का कोई तरीका नहीं है कि विधि क्लास आरेख का उपयोग करके संग्रह लौटाती है (इसके वापसी मूल्य को इंगित करने के अलावा)। – Simon
तो फिर मैं कहूंगा कि विधि संग्रह
हम्म, यह सच है कि यूएमएल कक्षा आरेखों में संग्रह प्रकारों को व्यक्त करने का कोई स्पष्ट तरीका नहीं है। मैंने एक पुस्तक पढ़ी जहां उन्होंने यूएमएल की आलोचना की, लेकिन उन्होंने उल्लेख किया कि यूएमएल के कुछ विलक्षण संस्करणों में संग्रह प्रकार थे। एक और चीज ऑब्जेक्ट कॉन्स्ट्रेन्ट लैंग्वेज (ओसीएल) है, जिसे यूएमएल (ओएमजी मानक के रूप में) के साथ एकीकृत किया गया है और इसमें अपने परिचालन प्रकार अच्छे संचालन के साथ हैं।
मैं थोड़ा देर से आ रहा हूं, क्योंकि मैं इसी तरह के प्रश्न का उत्तर ढूंढ रहा था। मैं इस बात को लिख रहा हूं कि कोई और इसी तरह के उत्तर की तलाश में है।
क्या आप यह इंगित करना चाहते हैं कि कोई विधि किसी विशिष्ट प्रकार का संग्रह लौटाती है? यदि ऐसा है, तो एक विधि के लिए आपको रिटर्न पैरामीटर के प्रकार और वापसी पैरामीटर की बहुतायत 0 .. * या 1 .. * पर सेट करने में सक्षम होना चाहिए। यह इंगित करेगा कि विधि निर्दिष्ट प्रकार देता है और यह कि आपके पास जो भी बहुतायत है, वह है।
उदा। लाइब्रेरी <> --- पुस्तक उदाहरण का उपयोग करें, मान लीजिए कि लाइब्रेरी पर गेटबुक नामक एक विधि है जो स्ट्रिंग पैरामीटर, लेखक का नाम लेती है, और बुक इंस्टेंस का संग्रह देता है।
लाइब्रेरी + GetBooks (AUTHORNAME: स्ट्रिंग): यूएमएल कुछ इस तरह दिखेगा बुक [0 .. *]
आपका यूएमएल आरेखण उपकरण इस का समर्थन करना चाहिए; मैं जादू ड्रा का उपयोग कर रहा हूँ। यह यूएमएल कहता है कि गेटबुक 0 या कई पुस्तक उदाहरण लौटाता है। यह अब कार्यान्वयन भाषा में वापसी पैरामीटर को कार्यान्वित करने का तरीका तय करने के लिए प्रोग्रामर पर है (जैसा साइमन द्वारा ऊपर बताया गया है)।
इसका प्रतिनिधित्व करने का एक अप्रत्यक्ष तरीका है।
आप एक और समग्र कक्षा को परिभाषित कर सकते हैं जिसमें आपके विशिष्ट रिटर्न प्रकार के साथ 1 * * का समग्र संबंध है और इस नए समग्र वर्ग को अपने रिटर्न प्रकार के रूप में उपयोग करें।
उदा। यदि आप पुस्तक वर्ग का संग्रह वापस करना चाहते हैं, तो 1 के साथ एक नई पुस्तकें कक्षा बनाएं .. * पुस्तक के साथ सहयोग करें और पुस्तकें कक्षा को अपने रिटर्न प्रकार के रूप में उपयोग करें।
- 1. संग्रह/ऐरे में विधि
- 2. चेन Backbone.js संग्रह विधि
- 3. ऑब्जेक्ट संदर्भों पर कचरा संग्रह कैसे काम करता है?
- 4. संग्रह
- 5. ऑटोमैपर: तारों के संग्रह में ऑब्जेक्ट का संग्रह मैपिंग
- 6. रूबी क्लास ऑब्जेक्ट कचरा संग्रह
- 7. बैकबोन जेएस संग्रह संग्रह का संग्रह
- 8. Backbone.js संग्रह का संग्रह
- 9. जेसन स्ट्रिंग से ऑब्जेक्ट संग्रह
- 10. शून्य-सुरक्षित संग्रह में विधि
- 11. संग्रह की ग्रोवी मानचित्र विधि
- 12. $ .each ([संग्रह]) बनाम $ ([संग्रह])। प्रत्येक()
- 13. संग्रह
- 14. ऑब्जेक्ट संग्रह के लिए ऑब्जेक्ट इनिशिलाइज़र
- 15. सी # संग्रह संग्रह?
- 16. सार्वजनिक संग्रह के लिए कस्टम संग्रह बनाम जेनेरिक संग्रह
- 17. EntityFramework EntityCollection संग्रह संग्रह Changed
- 18. संग्रह
- 19. संग्रह
- 20. संग्रह
- 21. मानचित्र विस्तारित नहीं करता है संग्रह इंटरफ़ेस
- 22. गिट-संग्रह पुराने काम करता है
- 23. उल ली में संग्रह प्रस्तुत करता है
- 24. संग्रह के अंदर लिनक पूछताछ संग्रह
- 25. गतिशील संग्रह
- 26. जेनेरिक संग्रह
- 27. संग्रह एएसएसर्ट
- 28. मैवेन युद्ध प्लगइन: संग्रह संग्रह के बिना संग्रह क्लास
- 29. क्यों नहीं संग्रह .Generic.Queue सिंक्रनाइज़ विधि है लेकिन संग्रह। Queue है?
- 30. मुझे IComparable और संग्रह सॉर्ट विधि
उत्तर में चर्चा के रूप में वापसी प्रकारों का उपयोग करने का कोई वास्तविक विकल्प नहीं है। लेकिन शायद टैग "पैटर्न" यहां थोड़ा भ्रामक है। – ShiDoiSi