UML

2008-12-01 9 views
6

में अधिभारित विधियों का प्रतिनिधित्व करना मैं कुछ जावा कोड के यूएमएल आरेख प्रतिनिधि को बनाने का प्रयास कर रहा हूं।UML

कक्षा में मेरे पास एक विधि है जो अधिभारित है।

जहाँ तक मुझे पता है, तरीकों के लिए पैरामीटर यूएमएल आरेखों में नहीं दिखाए जाते हैं।

मैं यूएमएल में विधि ओवरलोडिंग का प्रतिनिधित्व कैसे करूं?

धन्यवाद।

+0

आप किस उपकरण का उपयोग कर रहे हैं? –

उत्तर

2

पूरे आरेख या व्यक्तिगत कक्षा/इंटरफ़ेस के लिए प्रदर्शन विकल्प देखें। अधिकांश यूएमएल उपकरणों में विधियों की पैरामीटर सूची दिखाने के लिए विकल्प होते हैं।

3

उप-वर्ग में आप उसी विधि के साथ विधि निर्दिष्ट करते हैं जिस विधि को आप ओवरराइड करना चाहते हैं और विधि में एक नोट {redefines} जोड़ें। उदाहरण के लिए:

+doSomething(p:AThing):int{redefines} 

यह दर्शाता है कि कुछ() विधि एक सुपर क्लास में विधि को ओवरराइड करता है। और हाँ, विधियों पर विधियों के लिए पैरामीटर दिखाए जाते हैं। उदाहरण के रूप में पी एटींग प्रकार का एक पैरामीटर है।

+1

+1, लेकिन आप {redifines} -> {redefines} की वर्तनी को सही करना चाहेंगे – chimp

+2

ओवरलोडिंग फिर से परिभाषित करने जैसा नहीं है। बिल्कुल कोई आधार वर्ग नहीं हो सकता है (ऑब्जेक्ट के अलावा), लेकिन कक्षा में foo (int) हो सकता है: int और foo (double): double। –

2

आप अपने उपकरण और यूएमएल आरेख (मुझे लगता है कि वर्ग आरेख) का कहना है कि नहीं है, लेकिन आप 2 तरीके हैं:

  1. आप इस विधि के बारे में एक नोट लिख सकते हैं;
  2. आप कीवर्ड स्टीरियोटाइप लेखन < < ओवरलोडेड >> इस विधि में उपयोग कर सकते हैं;
0

उपरोक्त में से अधिकांश उत्तरों एक निश्चित प्रश्न के बाद सही हैं। Alepuzio, विन्सेंट और bmatthews68 सभी के पास जवाब है जो संदर्भ में समझ में आता है।

** यदि प्रश्न चारों ओर है, तो एक परिभाषा के साथ एक सुपर क्लास विधि को ओवरराइड करना सही परिभाषा है। यदि यह ओवरलोडिंग है कि आप एक ही विधि बनाते हैं जो विभिन्न तर्क लेता है तो मुझे विश्वास नहीं है कि संरचनात्मक रूप से मॉडल करना संभव है, उदाहरण के लिए आप इसे अनुक्रम आरेख के साथ दिखा सकते हैं जो व्यवहारिक है, लेकिन फिर भी वास्तव में नहीं।

तो + doSomething (पी: एथिंग): int {redefines} सही है जो विन्सेंट ने रखा है।

** यदि आपकी समस्या/प्रश्न सिर्फ पैरामीटर के आसपास है जो आरेख में दिखाई नहीं दे रहा है जो आम तौर पर अधिकांश यूएमएल उपकरणों में एक सेटिंग है।

** यदि आप इसे और अधिक स्पष्ट करना चाहते हैं कि आप क्या कर रहे हैं तो एक कीवर्ड <> का उपयोग करें, यह भी ध्यान रखें कि कोई कीवर्ड एक स्टीरियोटाइप नहीं है क्योंकि यह मेटा-मॉडल का हिस्सा नहीं है।

3

ओवरलोडिंग के बारे में बात करते समय - उदा। आपकी कक्षा में आपके पास एक ही नाम के साथ अधिक विधियां हैं लेकिन अलग-अलग हस्ताक्षर (पैरामीटर, शायद लक्ष्य भाषा के आधार पर वापसी मूल्य ...), आपको हस्ताक्षर प्रदान करना चाहिए। यूएमएल निर्दिष्ट नहीं करता है कि आपके पास विधि पैरामीटर नहीं हो सकते हैं।

संबंधित मुद्दे