2012-06-26 24 views
10

मैं यूएमएल कक्षा आरेख में स्थैतिक तरीकों का उपयोग कैसे दिखा सकता हूं?स्थिर तरीकों का उपयोग कैसे करें यूएमएल कक्षा आरेख

class A{ 
    public static void test(){ 
    } 
} 

class B{ 
    public void b(){ 
    A.test(); 
    } 
} 

क्लास आरेख कैसा दिखता है, जो रिश्ते को दिखाता है? यदि कोई अंतर है तो यूएमएल 2.0 तैयार किया जाएगा।

उत्तर

11

एक स्थिर विधि दिखाने के लिए आप स्थैतिक विधि के नाम को रेखांकित करते हैं - अधिक विस्तृत जानकारी के लिए here देखें।

उस संबंध को नेविगेट करने के लिए; class Bclass A के अस्तित्व पर निर्भर है। हम कह सकते हैं कि कक्षा बी में कक्षा ए

class B ----uses----> class A 

पर यह "उपयोग निर्भरता" है, उम्मीद है कि इससे मदद मिलती है।

+0

क्या आप सुनिश्चित हैं कि यह निर्भरता संबंध है और कोई सहयोग नहीं है? – Nicolas

+0

एक एसोसिएशन एक उदाहरण (ओं) से जुड़े दो (या अधिक) प्रकारों के बीच एक रिश्ता है। इसलिए क्लासबी के लिए क्लासए के साथ सहयोग करने के लिए इसे किसी संपत्ति या क्षेत्र के माध्यम से संदर्भित करने की आवश्यकता है। लेकिन चूंकि यह आपके उदाहरण में मामला नहीं है, इसलिए मैं कहूंगा कि आपके पास निर्भरता है और एक सहयोग नहीं है। मुझे लगता है कि इस [लिंक] (http://www.uml-diagrams.org/dependency.html) में परिभाषा दर्शाती है कि आपके पास निर्भरता है। – RobertMS

6

@RobertMS इसका अधिकार।

एक अन्य विकल्प है, इसकी लकीर के फकीर उपयोग करने के लिए:

.............................................................. 
....+----------------------------------------------------+.... 
....|    StringUtilityClass     |.... 
....+----------------------------------------------------+.... 
....| [+] void: lowerCase()    <<non virtual>> |.... 
....| [+] void: upperCase()    <<non virtual>> |.... 
....| [+] String: toString()    <<override>> |.... 
....+----------------------------------------------------+.... 
....| [+] String: LowerCaseCopy(String Value) <<static>> |.... 
....| [+] String: UpperCaseCopy(String Value) <<static>> |.... 
....| [+] String: ReverseCopy(String Value) <<static>> |.... 
....+----------------------------------------------------+.... 
.............................................................. 

नोट कुछ प्रोग्रामिंग भाषाओं सर्वोत्तम प्रथाओं, विशेष रूप से उन लोगों के सी केस संवेदी वाक्य रचना के साथ, स्थिर कार्यों भुनाने, और में छोड़ ऊंट-लोअरकेस बाकी कार्यों

चीयर्स।

3

स्थिर तरीकों दिखाने के लिए और आप एक यूएमएल वर्ग चित्र में उन्हें रेखांकित विशेषताओं के लिए:

स्टेटिक सुविधाओं को रेखांकित कर रहे हैं: UML Distilled p.66 या अनुभाग 7.3.19 (फीचर) UML Superstructure specification के देखते हैं।

कक्षा बी और ए के बीच संबंध दिखाने के लिए (जहां बी केवल ए में स्थिर विधियों का उपयोग करता है), आप एक निर्भरता का उपयोग करते हैं, न कि एक एसोसिएशन।

एक संघ एक अर्थ रिश्ता है कि आपके द्वारा लिखे गए उदाहरणों के बीच हो सकता है निर्दिष्ट करता है: संघों हमेशा यूएमएल सुपरस्ट्रक्चर कल्पना की धारा 7.3.3 (एसोसिएशन) के रूप में प्रत्येक के अंत में कक्षाएं, की के बीच उदाहरणों हैं।

लेकिन क्लास B निर्भर वर्ग एक पर है, कल्पना की धारा 7.3.12 में के रूप में:

एक निर्भरता एक रिश्ता है कि प्रतीक है कि एक एकल या मॉडल तत्वों का एक सेट उनके विनिर्देश या कार्यान्वयन के लिए अन्य मॉडल तत्वों की आवश्यकता है।

संभवतः एक स्टीरियोटाइप के साथ निर्भरता की प्रकृति को स्पष्ट करने के लायक है। आप use स्टीरियोटाइप का उपयोग कर सकते हैं, लेकिन यह बहुत सामान्य है और वास्तव में उदाहरणों के बीच मानक संघों को शामिल करता है (हालांकि आप स्पष्ट रूप से आमतौर पर उन्हें स्पष्ट रूप से दिखाने के लिए संघों का उपयोग करते हैं)।जैसा कि फाउलर यूएमएल डिस्टिल्ड में कहते हैं,

कई यूएमएल संबंध निर्भरता दर्शाते हैं। नेविगेशन एसोसिएशन ऑर्डर टू ग्राहक से [उनके उदाहरणों में से एक ...] का मतलब है कि ऑर्डर ग्राहक पर निर्भर है।

क्या स्टीरियोटाइप का उपयोग करने के लिए कोई मानक नहीं लगता है। मैंने निर्भरता की प्रकृति पर स्पष्ट होने के लिए usesStatically का उपयोग किया है; कि

B --usesStatically--> A

है (हैं, तो वैकल्पिक रूप से, वर्ग बी ए का एक उदाहरण एक स्थिर क्षेत्र के रूप में था, अगर मैं स्पष्ट रूप से वर्ग रेखाचित्र में बी का प्रतिनिधित्व कर रहा हूँ मैं B--containsStatically--> A की तरह कुछ का उपयोग करेंगे, अन्यथा सिर्फ है बी में टाइप ए की एक रेखांकित स्थिर विशेषता)

+0

मैंने सोचा था कि @ रॉबर्टएमएस का जवाब विस्तार करने लायक था लेकिन इसे एक समुदाय विकी उत्तर के रूप में रखा गया है क्योंकि यह 'सिर्फ' अपने उत्तर की कुछ बारीकियों को समझाता है (और अधिक 'आधिकारिक' संदर्भों से लिंक करता है)। –