2011-10-20 12 views
8

मुझे यकीन नहीं है कि मैं association and aggregation or composition diamond का उपयोग ठीक से करता हूं।यूएमएल कक्षा आरेख एसोसिएशन बनाम (एकत्रीकरण | संरचना) - डायमंड्स

मैं इंटरफेस के लिए एसोसिएशन का उपयोग करूंगा, क्योंकि मैं उन्हें तत्काल नहीं कर सकता। उदाहरण के लिए वे here करते हैं। या स्थैतिक वर्गों के लिए, एक ही कारण।

और हीरे जो मैं केवल वस्तुओं के लिए उपयोग करता हूं, मैं तुरंत चालू कर सकता हूं। सामान्य कक्षाओं की तरह।

लेकिन मुझे यकीन नहीं है कि यह उन्हें अलग करने का सही तरीका है, क्योंकि यदि आप check फिर से देखते हैं, तो आप देखेंगे कि वे इसके बारे में इतना विशिष्ट नहीं हैं। यूएमएल 2.3 specification में मैं और अधिक नहीं निकल सका, तो आप इसका उपयोग कैसे कर रहे हैं?

और तीसरा तरीका है, धराशायी लाइन <> तीर, लेकिन इसका उपयोग करने के दौरान मुझे कोई गोंद नहीं है। तो शायद आप भी उस के साथ मेरी मदद कर सकते हैं?

उत्तर

16

मैं इंटरफेस के लिए एसोसिएशन का उपयोग करूंगा, क्योंकि मैं उन्हें तत्काल नहीं कर सकता। जैसे वे उदाहरण के लिए यहां करते हैं। या स्थैतिक वर्गों के लिए, एक ही कारण।

और हीरे जो मैं केवल वस्तुओं के लिए उपयोग करता हूं, मैं तुरंत चालू कर सकता हूं। सामान्य कक्षाओं की तरह।

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

  • एसोसिएशन (कोई हीरा), सबसे सामान्य रूप है की इजाजत दी प्रमुखता तथा भ्रमण दोनों सिरों पर परिभाषित किया जाना है।
  • संरचना (भरे हुए हीरे) एक पूर्ण-भाग संबंध है जहां 'संपूर्ण' (काले हीरे के साथ अंत) 'भाग शामिल है। यह दो महत्वपूर्ण प्रतिबंध लगाता है:
    1. केवल 1 कंटेनर हो सकता है (यानी पूरे अंत में कार्डिनिटी बिल्कुल 1 है);
    2. यह पूरे हिस्सों के लिए जीवन चक्र की ज़िम्मेदारी लगाता है। इसलिए कंटेनर भागों को बनाने और हटाने के लिए ज़िम्मेदार है। यदि उसका कंटेनर हटा दिया गया है तो एक हिस्सा मौजूद नहीं रह सकता है।

एकत्रीकरण (रिक्त हीरा) बीच में कहीं बैठता है। यह संरचना की तरह थोड़ा सा है - सिवाय इसके कि ऊपर वर्णित गुणों को अनिवार्य नहीं है। मैं व्यक्तिगत रूप से इसका उपयोग नहीं करता हूं। अर्थशास्त्र के लिए अर्थपूर्ण होने के लिए अर्थशास्त्र बहुत अस्पष्ट हैं।

और तीसरा तरीका है, धराशायी लाइन <> तीर, लेकिन मेरे पास इसका उपयोग करने के लिए कोई गोंद नहीं है।

मुझे लगता है कि आप निर्भरता संबंध का मतलब है। यह एसोसिएशन का कमजोर रूप है। उदाहरण के लिए, इस मामले प्रकार फू बार() विधि हस्ताक्षर में इसके उपयोग से पर प्रकार बाज एक निर्भरता है में निम्नलिखित वर्ग परिभाषा

class Foo { 

def bar(Baz: aParam) { 
    ... 
} 
} 

ले। हालांकि उनके बीच कोई संबंध नहीं है (समझदारी से चर्चा नहीं कर सकता है जैसे फू के उदाहरण और बाज़ के उदाहरण के बीच संबंधों की कार्डिनालिटी)।

व्यावहारिक दृष्टिकोण से मैं कहना चाहता हूँ:

  • आप + रिश्तों आप
  • संरचना शायद शेष के अधिकांश के लिए खातों का मॉडल बनाना चाहते होने की संभावना हो के 80% के लिए सीधे संघों उपयोग कर सकते हैं परिदृश्य
  • निर्भरता कुछ परिस्थितियों में उपयोगी हो सकती है
  • आप कभी भी एकत्रीकरण का उपयोग किए बिना खुशी से प्राप्त कर सकते हैं।

hth।

+0

आपका स्वागत है। – sfinnie

0

चलिए शर्तों को सेट करते हैं। एग्रीगेशन यूएमएल मानक में मेटाटर्म है, और इसका मतलब है कि दोनों रचना और साझा समेकन, जिसे नामित किया गया है साझा किया गया। अक्सर इसे गलत तरीके से "एकत्रीकरण" नाम दिया जाता है। यह बीएडी है, क्योंकि रचना भी एकत्रीकरण है। जैसा कि मैं समझता हूं, आपका मतलब "साझा" है।

यूएमएल मानक से

आगे:

समग्र - यह दर्शाता है कि संपत्ति एकत्रित किया गया है compositely, अर्थात, समग्र वस्तु अस्तित्व और रचना की वस्तुओं (भागों) की भंडारण के लिए जिम्मेदारी है।

तो, विश्वविद्यालय cathedras संघ क्योंकि cathedra विश्वविद्यालय (IMHO) से बाहर मौजूद नहीं है

साझा एकत्रीकरण की सटीक अर्थ विज्ञान आवेदन क्षेत्र और मॉडलर से भिन्न होता है, एक संरचना है।

आईई, अन्य सभी संगठनों को साझा समेकन के रूप में खींचा जा सकता है, यदि आप केवल अपने या किसी और के कुछ सिद्धांतों का पालन कर रहे हैं। here भी देखें।