एकत्रीकरण बनाम रचना [बंद]


89

यूएमएल में रचना और एकत्रीकरण के बीच अंतर को समझने में मुझे कठिन समय मिला है। क्या कोई मुझे उनके बीच एक अच्छी तुलना और इसके विपरीत की पेशकश कर सकता है? मैं कोड और / या लघु सॉफ्टवेयर / कोड उदाहरण देखने के लिए उनके बीच के अंतर को पहचानना सीखना पसंद करूंगा।

संपादित करें: मेरे द्वारा पूछे जाने वाले कारण का एक उल्टा प्रलेखन गतिविधि के कारण है जो हम काम कर रहे हैं। हमने कोड लिखा है, लेकिन हमें कोड के लिए वापस जाने और वर्ग आरेख बनाने की आवश्यकता है। हम बस संघों को ठीक से पकड़ना चाहते हैं।



कृपया, एक कोड-आधारित उदाहरण की जाँच करें: stackoverflow.com/questions/731802/…
अल्मीर कैम्पोस

यूएमएल 2.5 ने अंतर स्पष्ट किया है। पी पर बॉक्स देखें। 110. इसलिए मैं इसे फिर से खोलने के लिए मतदान कर रहा हूं।
qwerty_so

नहीं, यूएमएल 2.5 ने रचना की परिभाषा को स्पष्ट नहीं किया है, बल्कि इसके बारे में अस्पष्ट बना हुआ है, क्योंकि वे यह भी कहते हैं कि "समग्र वस्तु को हटाए जाने से पहले एक समग्र वस्तु को एक समग्र वस्तु से हटाया जा सकता है, और इस तरह से इसे हटाया नहीं जा सकता है समग्र वस्तु। " मेरा जवाब नीचे देखें ( stackoverflow.com/questions/734891/… ) जहाँ मैंने रचना के अर्थ को स्पष्ट करने की कोशिश की है। कृपया मेरे उत्तर को यह दिखाने के लिए उकसाएं कि SO में, सही उत्तर अंत में जीतता है :-) [या सभी गलत उत्तरों को छोड़ दें]
Gerd Wagner

जवाबों:


90

एकत्रीकरण और रचना के बीच का अंतर संदर्भ पर निर्भर करता है।

एक अन्य उत्तर में उल्लेखित कार उदाहरण लें - हां, यह सच है कि एक कार निकास "अपने दम पर" खड़ा हो सकता है इसलिए कार के साथ रचना में नहीं हो सकता है - लेकिन यह आवेदन पर निर्भर करता है। यदि आप एक ऐसे अनुप्रयोग का निर्माण करते हैं जो वास्तव में स्टैंड अलोन कार एग्जॉस्ट (कार शॉप मैनेजमेंट एप्लिकेशन?) से निपटना है, तो एकत्रीकरण आपकी पसंद होगा। लेकिन अगर यह एक सरल रेसिंग गेम है और कार का निकास केवल कार के हिस्से के रूप में कार्य करता है - ठीक है, तो रचना काफी ठीक होगी।

शतरंज का बोर्ड? एक ही समस्या है। एक शतरंज का टुकड़ा शतरंज बोर्ड के बिना केवल कुछ अनुप्रयोगों में मौजूद नहीं है। दूसरों में (एक खिलौना निर्माता की तरह), एक शतरंज टुकड़ा निश्चित रूप से एक शतरंज बोर्ड में नहीं बनाया जा सकता है।

अपनी पसंदीदा प्रोग्रामिंग भाषा में रचना / एकत्रीकरण का प्रयास करते समय चीजें और भी बदतर हो जाती हैं। कुछ भाषाओं में, अंतर को नोटिस करना आसान हो सकता है ("संदर्भ" बनाम "मूल्य से", जब चीजें सरल होती हैं) लेकिन दूसरों में बिल्कुल भी मौजूद नहीं हो सकती हैं।

और सलाह का एक आखिरी शब्द? इस मुद्दे पर बहुत समय बर्बाद मत करो। यह इसके लायक नहीं है। व्यवहार में भेद शायद ही उपयोगी है (भले ही आपके पास पूरी तरह से स्पष्ट "रचना" हो, आप अभी भी तकनीकी कारणों से एक एकत्रीकरण के रूप में इसे लागू करना चाह सकते हैं - उदाहरण के लिए, कैशिंग)।


1
मैंने कहा कि शतरंज के टुकड़े के बजाय शतरंज वर्ग, लेकिन सभी वैध बिंदु।
डेविड एम।

2
मैं निश्चित रूप से "यह इसके लायक नहीं है" मानसिकता के साथ मुद्दा लेता है। यदि आप यह नहीं सोचते हैं कि कौन वस्तु का मालिक है और यह जीवन भर के लिए ज़िम्मेदार है, तो आपको ऑब्जेक्ट क्रूड से संबंधित बहुत ही भद्दा कोड मिलेगा, विशेष रूप से क्लीनअप, जिसके साथ न्यूल पॉइंटर्स चारों ओर उड़ते हैं क्योंकि ऑब्जेक्ट पदानुक्रम बुरे राज्यों में छोड़ दिए जाते हैं।
क्रिस केसेल

9
हां, आपको इस मुद्दे पर बहुत अधिक समय बर्बाद नहीं करना चाहिए: UML एक OOA / OOD भाषा है; एकत्रीकरण / रचना आमतौर पर OOP तक का निर्णय सबसे अच्छा है। यदि आप अपने यूएमएल मॉडल में बहुत अधिक विस्तार करने की कोशिश करते हैं, तो आप विश्लेषण पक्षाघात का जोखिम उठाते हैं।
चिम्प

13
+1 के लिए "इस पर बहुत समय बर्बाद मत करो"। यही मुझे सुनने की जरूरत है!
रॉनी

8
"इस पर बहुत समय बर्बाद मत करो" साक्षात्कारकर्ता इसे क्यों नहीं समझते हैं?
टिटोगो जूल १12

95

निर्धारित नियम के रूप में: यहां छवि विवरण दर्ज करें

class Person {
    private Heart heart;
    private List<Hand> hands;
}

class City {
    private List<Tree> trees;
    private List<Car> cars
}

रचना (व्यक्ति, हृदय, हाथ) में, "उप वस्तुओं" (हृदय, हाथ) को नष्ट कर दिया जाएगा जैसे ही व्यक्ति नष्ट हो जाएगा।

एकत्रीकरण में (सिटी, ट्री, कार) "सब ऑब्जेक्ट्स" (ट्री, कार) तब नष्ट नहीं होगा जब सिटी नष्ट हो जाएगी।

लब्बोलुआब यह है कि, संरचना आपसी अस्तित्व पर जोर देती है, और एकत्रीकरण में, इस संपत्ति की आवश्यकता नहीं है।


1
आपसी अस्तित्व, अच्छा एक बी)
jxramos

आपके प्रयास की सराहना। एक बहुत अच्छी व्याख्या और कोई भी आम आदमी इसे समझ सकता है।
रविन्द्रन कन्नैया

सबसे सरल और सबसे अच्छा स्पष्टीकरण मैं भर में आया था।
आकाश राघव

सबसे अच्छा
स्पष्टीकरण

यूएमएल 2.5 ने अंतर स्पष्ट किया है। पी पर बॉक्स देखें। 110. तो आपका जवाब अभी गलत है,
qwerty_so

51

रचना और एकत्रीकरण संघों के प्रकार हैं। वे बहुत निकट से संबंधित हैं और प्रोग्रामिंग के मामले में दोनों के बीच बहुत अंतर नहीं है। मैं जावा कोड के उदाहरणों से इन दोनों के बीच के अंतर को समझाने की कोशिश करूंगा

एकत्रीकरण : वस्तु दूसरे के बाहर मौजूद है, बाहर बनाई गई है, इसलिए इसे कंस्ट्रक्टर को एक तर्क (उदाहरण के लिए) के रूप में पारित किया जाता है। Ex: लोग - कार। कार एक अलग संदर्भ में बनाई गई है और फिर एक व्यक्ति संपत्ति बन जाती है।

// code example for Aggregation:
// reference existing HttpListener and RequestProcessor
public class WebServer {
  private HttpListener listener;
  private RequestProcessor processor;
  public WebServer(HttpListener listener, RequestProcessor processor) {
    this.listener = listener;
    this.processor = processor;
  }
}

रचना : वस्तु केवल मौजूद है, या केवल दूसरे के अंदर, दूसरे के हिस्से के रूप में समझ में आता है। Ex: लोग - दिल। आप एक दिल नहीं बनाते हैं और फिर इसे एक व्यक्ति को पास करते हैं। इसके बजाय, दिल बनाया जाता है जब मानव बनाया जाता है।

// code example for composition:
// create own HttpListener and RequestProcessor
public class WebServer {
  private HttpListener listener;
  private RequestProcessor processor;
  public WebServer() {
    this.listener = new HttpListener(80);
    this.processor = new RequestProcessor(“/www/root”);
  }
}

उदाहरण के साथ यहां बताया गया है कि एकत्रीकरण और संरचना के बीच अंतर


5
अब तक के सबसे अच्छे जवाबों में से एक। नीट :)
रोहित सिंह

6
यह दिखाने का सबसे अच्छा जावा कोड उदाहरण जब ऑब्जेक्ट (संयोजन) या (एकत्रीकरण) अन्य वस्तुओं के साथ मौजूद हो सकता है।
मिशेल डोबी डोब्रज़ास्की

कृपया, मैं जानना चाहता हूं कि क्या हमें रचना के लिए अंतिम उपयोग करना चाहिए या नहीं?
आउटरीगो वन वन

36

रचना का अर्थ है कि बच्चे की वस्तुओं को माता-पिता के साथ जीवनकाल साझा करना है। एकत्रीकरण नहीं करता है। उदाहरण के लिए, एक शतरंज बोर्ड शतरंज वर्गों से बना है - शतरंज वर्ग वास्तव में बोर्ड के बिना मौजूद नहीं है। हालांकि, एक कार भागों का एक एकत्रीकरण है - एक कार निकास अभी भी एक कार निकास है यदि यह समय पर कार का हिस्सा नहीं है।


18

मैंने जो उदाहरण सीखा वह हाथ की उंगलियां थीं। आपका हाथ उंगलियों से बना है। यह उनका मालिक है। हाथ मर जाता है, तो उंगलियां मर जाती हैं। आप उंगलियों को "एकत्रित" नहीं कर सकते। आप बस अतिरिक्त उंगलियों को पकड़ नहीं सकते हैं और उन्हें अपनी इच्छा से संलग्न कर सकते हैं।

एक डिजाइन के दृष्टिकोण से यहाँ मूल्य, अक्सर एक और पोस्टर के रूप में ऑब्जेक्ट जीवन काल से संबंधित है। कहते हैं कि आपके पास एक ग्राहक है और उनके पास एक खाता है। वह खाता ग्राहक की एक "रचना" वस्तु है (कम से कम, अधिकांश संदर्भों में मैं सोच सकता हूं)। यदि आप ग्राहक को हटाते हैं, तो खाते का अपना कोई मूल्य नहीं है, इसलिए इसे भी हटा दिया जाएगा। ऑब्जेक्ट निर्माण पर रिवर्स अक्सर सही होता है। चूंकि एक खाते का केवल ग्राहक के संदर्भ में अर्थ होता है, आपके पास ग्राहक निर्माण के हिस्से के रूप में खाता निर्माण होगा (या, यदि आप इसे आलस्य करते हैं, तो यह कुछ ग्राहक लेनदेन का हिस्सा होगा)।

यह उन वस्तुओं के बारे में सोचने के लिए डिज़ाइन में उपयोगी है जो अन्य वस्तुओं बनाम खुद को बनाते हैं (जो केवल अन्य वस्तुओं को संदर्भित करते हैं)। यह निर्धारित करने में मदद कर सकता है कि वस्तु निर्माण / सफाई / अपडेट के लिए जिम्मेदारी कहां है।

जहां तक ​​कोड में है, यह बताना मुश्किल है। कोड में अधिकांश सब एक वस्तु संदर्भ है, इसलिए यह स्पष्ट नहीं हो सकता है कि संदर्भित वस्तु की रचना (स्वामित्व) या एकत्र की गई है या नहीं।


15

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

यूएमएल विनिर्देश दस्तावेज में, "रचना" शब्द की परिभाषा हमेशा गैर-साझा करने योग्य भागों को निहित करती है, लेकिन यह स्पष्ट नहीं किया गया है कि "रचना" की परिभाषित विशेषता क्या है, और केवल एक वैकल्पिक विशेषता क्या है। यहां तक ​​कि नए संस्करण (2015 तक) में, यूएमएल 2.5, "रचना" शब्द की परिभाषा में सुधार करने के प्रयास के बाद भी, यह अभी भी अस्पष्ट है और गैर-के साथ भाग-पूरे-संघों को मॉडल करने के लिए कोई मार्गदर्शन प्रदान नहीं करता है। उन हिस्सों को जहां से अलग किया जा सकता है, बचना चाहिए और नष्ट होने से बच जाता है, पूरे उस मामले के विपरीत जहां भागों को अलग नहीं किया जा सकता है और पूरे के साथ नष्ट हो जाते हैं। वे कहते हैं

यदि किसी कंपोज़िट ऑब्जेक्ट को हटा दिया जाता है, तो उसके सभी भाग इंस्टेंस जो ऑब्जेक्ट हैं, उसके साथ हटा दिए जाते हैं।

लेकिन साथ ही वे यह भी कहते हैं

कंपोज़िट ऑब्जेक्ट डिलीट होने से पहले एक पार्ट ऑब्जेक्ट को किसी कंपोज़िट ऑब्जेक्ट से हटाया जा सकता है, और इस तरह कंपोज़िट ऑब्जेक्ट के हिस्से के रूप में डिलीट नहीं किया जा सकता है।

यह भ्रम यूएमएल परिभाषा की अपूर्णता को इंगित करता है, जो घटकों और कंपोजिट के बीच जीवन चक्र निर्भरता के लिए जिम्मेदार नहीं है। इसलिए यह समझना महत्वपूर्ण है कि UML परिभाषा को किस प्रकार यूएमएल स्टीरियोटाइप के लिए बढ़ाया जा सकता है << अविभाज्य >> रचनाओं के लिए जहां घटकों को उनके समग्र से अलग नहीं किया जा सकता है, और इस प्रकार, जब भी उनका समग्र नष्ट हो जाता है, तब उन्हें नष्ट करना होगा।

१) रचना

जैसा कि मार्टिन फाउलर ने समझाया है , रचना को चिह्नित करने के लिए मुख्य मुद्दा यह है कि "एक वस्तु केवल एक रचना संबंध का हिस्सा हो सकती है"। यह भी उत्कृष्ट ब्लॉग पोस्ट UML संरचना बनाम एकत्रीकरण बनाम एसोसिएशन गेर्ट बेलेकेंस द्वारा समझाया गया है । किसी रचना की इस परिभाषित विशेषता ( विशेष , या गैर-श्रुत , भागों) को परिभाषित करने के अलावा , एक रचना समग्र और उसके घटकों के बीच एक जीवन-चक्र निर्भरता के साथ भी आ सकती है। वास्तव में, इस तरह की निर्भरताएं दो प्रकार की होती हैं:

  1. जब भी किसी घटक को हमेशा एक समग्र से जोड़ा जाना चाहिए , या, दूसरे शब्दों में, जब उसके पास एक अनिवार्य समग्र होता है , जैसा कि संरचना रेखा के समग्र पक्ष में "ठीक एक" गुणा द्वारा व्यक्त किया जाता है, तो इसे फिर से उपयोग किया जाना चाहिए। किसी अन्य सम्मिश्र, या नष्ट होने पर (या पुनः संलग्न), जब उसका वर्तमान सम्मिश्रण नष्ट हो जाता है। इसके बीच की रचना द्वारा उदाहरण दिया गया है , Personऔर Heartनीचे चित्र में दिखाया गया है। एक दिल या तो नष्ट हो जाता है या किसी अन्य व्यक्ति को प्रत्यारोपित किया जाता है, जब उसके मालिक की मृत्यु हो गई हो।
  2. जब भी एक घटक को उसके समग्र से अलग नहीं किया जा सकता है , या, दूसरे शब्दों में, जब यह अविभाज्य है , तब, और उसके बाद ही, घटक को नष्ट करना होगा, जब इसका समग्र नष्ट हो जाएगा। अविभाज्य भागों के साथ इस तरह की रचना का एक उदाहरण Personऔर के बीच की रचना है Brain

यहां छवि विवरण दर्ज करें

सारांश में, जीवन-चक्र निर्भरता केवल रचना के विशिष्ट मामलों पर लागू होती है, लेकिन सामान्य रूप से नहीं, इसलिए वे एक परिभाषित विशेषता नहीं हैं।

यूएमएल कल्पना में कहा गया है: "समग्र उदाहरण हटाए जाने से पहले एक हिस्से को समग्र उदाहरण से हटाया जा सकता है, और इस प्रकार समग्र उदाहरण के भाग के रूप में हटाया नहीं जा सकता है।" एक Car- Engineरचना के उदाहरण में , जैसा कि निम्नलिखित चित्र में दिखाया गया है, यह स्पष्ट रूप से मामला है कि कार के नष्ट होने से पहले इंजन को कार से अलग किया जा सकता है, इस स्थिति में इंजन नष्ट नहीं होता है और इसका पुन: उपयोग किया जा सकता है। यह रचना रेखा के संयुक्त पक्ष में शून्य या एक गुणा से निहित है ।

यहां छवि विवरण दर्ज करें

कंपोजिशन के अंत में कंपोजिशन के अंत की बहुलता या तो 1 या 0..1 होती है, इस तथ्य पर निर्भर करता है कि कंपोनेंट्स में कंपोजिट अनिवार्य है (कंपोजिट से जुड़ा होना चाहिए) या नहीं। यदि घटक अविभाज्य हैं , तो इसका मतलब है कि उनके पास एक अनिवार्य समग्र है।

२) एकत्रीकरण

एक एकत्रीकरण भाग-पूरे-संबंध के इच्छित अर्थ के साथ जुड़ाव का एक और विशेष रूप है, जहाँ एक पूर्ण के हिस्सों को अन्य पूर्ण के साथ साझा किया जा सकता है। उदाहरण के लिए, हम वर्गों के बीच एक एकत्रीकरण मॉडल कर सकते हैं DegreeProgramऔर Courseके रूप में निम्नलिखित चित्र में दिखाया गया, क्योंकि एक कोर्स एक डिग्री कार्यक्रम का हिस्सा है और एक कोर्स (दो या अधिक डिग्री कार्यक्रमों के बीच साझा किया जा सकता है जैसे एक इंजीनियरिंग की डिग्री एक सी साझा कर सकता कंप्यूटर साइंस की डिग्री के साथ प्रोग्रामिंग कोर्स)।

यहां छवि विवरण दर्ज करें

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

एक समग्र संघ के अंत की बहुलता पूरे पक्ष में किसी भी संख्या (*) के रूप में हो सकती है क्योंकि एक हिस्सा किसी भी संख्या के साथ हो सकता है या साझा किया जा सकता है ।


2
रचना का जीवनचक्र से कोई संबंध नहीं है, लेकिन अधिकांश वास्तविक दुनिया की समस्याओं में जीवनचक्र एक प्राथमिक प्रेरक है चाहे आप इसे लिखें या एकत्र करें। मैंने अपने उत्तर में हेज किया, यह कहते हुए कि जीवनचक्र हमेशा संबंधित होने के बजाय "अक्सर" संबंधित है। यह नोट करना अच्छा है कि जीवनचक्र की आवश्यकता नहीं है, लेकिन यह कहना कि दृश्य एक "मुख्य समस्या" है और गलत (अच्छे बोल्ड फॉन्ट में) मुझे अयोग्य बनाता है और व्यावहारिक उपयोग के विचारों को इंगित करने से रोकता है।
क्रिस केसेल

मैं दृढ़ता से असहमत हूँ। जीवनचक्र के विचार "आप चाहे लिखें या एकत्र न करें" के प्राथमिक प्रेरक नहीं हो सकते हैं, क्योंकि आप उन्हें संघों के कई मामलों में स्वतंत्र रूप से इस तथ्य से जोड़ते हैं कि क्या वे किसी भी तरह के अंश-संपूर्ण यथार्थ (एकत्रीकरण या रचना) का प्रतिनिधित्व करते हैं। जब भी किसी एसोसिएशन के पास एक अनिवार्य संदर्भ संपत्ति के अनुरूप 0 से अधिक कम बाध्य गुणा के साथ एक अंत होता है, तो आपको एक आजीवन निर्भरता मिलेगी।
गर्ड वैगनर

9

कोड शब्दों में, रचना आमतौर पर बताती है कि घटक * के उदाहरणों को बनाने के लिए युक्त वस्तु जिम्मेदार है, और युक्त वस्तु इसके लिए केवल लंबे समय तक जीवित संदर्भ रखती है। तो अगर माता-पिता वस्तु को डी-रेफर किया जाता है और कचरा एकत्र किया जाता है, तो बच्चा होगा।

तो यह कोड ...

Class Order
   private Collection<LineItem> items;
   ...
   void addOrderLine(Item sku, int quantity){
         items.add(new LineItem(sku, quantity));
   }
}

पता चलता है कि लाइन इटेम ऑर्डर का एक घटक है - लाइनटाइम्स का उनके युक्त ऑर्डर के बाहर कोई अस्तित्व नहीं है। लेकिन आइटम ऑब्जेक्ट का निर्माण क्रम में नहीं किया गया है - वे आवश्यकतानुसार पारित किए जाते हैं, और मौजूद रहते हैं, भले ही दुकान के पास कोई आदेश न हो। इसलिए वे घटकों के बजाय जुड़े हुए हैं।

* nb कंटेनर घटक को अस्थिर करने के लिए जिम्मेदार है , लेकिन यह वास्तव में नया नहीं कह सकता है ... () खुद - यह जावा होने के नाते, आमतौर पर पहले से गुजरने के लिए एक कारखाना या दो है!


0

अन्य उत्तरों में प्रदान की गई वैचारिक चित्रण उपयोगी हैं, लेकिन मैं एक और बिंदु साझा करना चाहता हूं जो मुझे उपयोगी लगा है।

मैंने कोड जनरेशन के लिए UML से कुछ माइलेज प्राप्त किया है, रिलेशनल डेटाबेस के लिए सोर्स कोड या DDL के लिए। वहां, मैंने यह इंगित करने के लिए कि तालिका में एक गैर-अशक्त विदेशी कुंजी (डेटाबेस में), और एक गैर-अशक्त "माता-पिता" (और अक्सर "अंतिम") ऑब्जेक्ट है, रचना का उपयोग किया है। मैं एकत्रीकरण का उपयोग करता हूं जहां मैं एक "अनाथ" के रूप में मौजूद होने में सक्षम होने के लिए एक रिकॉर्ड या वस्तु का इरादा रखता हूं, किसी भी मूल वस्तु से जुड़ा नहीं है, या एक अलग मूल वस्तु द्वारा "अपनाया" जा सकता है।

दूसरे शब्दों में, मैंने मॉडल के लिए कोड लिखते समय आवश्यक कुछ अतिरिक्त बाधाओं को लागू करने के लिए शॉर्टहैंड के रूप में रचना संकेतन का उपयोग किया है।


0

उदाहरण जो मुझे पसंद है: रचना: पानी एक तालाब का एक हिस्सा है । (तालाब पानी की एक संरचना है।) एकत्रीकरण: तालाब है बतख और मछली हैं (तालाब बतख और मछली एकत्र करते हैं)

जैसा कि आप देख सकते हैं कि मैंने "पार्ट-ऑफ" और "है" बोल्ड किया है, क्योंकि ये 2 वाक्यांश आमतौर पर इंगित कर सकते हैं कि कक्षाओं के बीच किस तरह का कनेक्शन मौजूद है।

लेकिन जैसा कि दूसरों द्वारा बताया गया है, कई बार कि क्या कनेक्शन एक रचना है या एक एकत्रीकरण आवेदन पर निर्भर करता है।


लेकिन पार्ट-टू और इसमें कुछ समय के लिए भ्रम है। उदाहरण के लिए, एक व्यक्ति वर्ग का "नाम" है, इसलिए यह दर्शाता है कि व्यक्ति का नाम के साथ एकत्रीकरण संबंध है। वास्तव में, यह रचना संबंध है। क्यों? जब व्यक्ति वस्तु नष्ट हो जाती है, तो नाम होना चाहिए। और "नाम एक व्यक्ति का हिस्सा है", प्राकृतिक नहीं लगता है।
आसिफ शहजाद

0

समग्र संबंध और समग्र संबंध के बीच अंतर करना बहुत मुश्किल है, लेकिन मैं कुछ उदाहरण लेने जा रहा हूं, हमारे पास एक घर और कमरे हैं, यहां हमारा एक समग्र संबंध है, कमरा यह घर का एक हिस्सा है, और कमरे का जीवन शुरू हो गया है घर के जीवन के साथ और खत्म हो जाएगा जब घर का जीवन खत्म हो जाएगा, कमरा यह घर का एक हिस्सा है, हम देश और राजधानी, पुस्तक और पृष्ठों की तरह रचना के बारे में बात करते हैं। समग्र संबंध उदाहरण के लिए, टीम और खिलाड़ियों को लें, खिलाड़ी टीम के बिना मौजूद हो सकता है, और टीम खिलाड़ियों का एक समूह है, और टीम जीवन से पहले खिलाड़ी का जीवन शुरू हो सकता है, अगर हम प्रोग्रामिंग के बारे में बात करते हैं, तो हम खिलाड़ी बना सकते हैं और हम टीम बनाने के बाद, लेकिन रचना संख्या के लिए, हम घर के अंदर कमरे का निर्माण करते हैं। रचना ----> समग्र | रचना | एकत्रीकरण -------> समूह | तत्त्व


0

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

UML मानक से आगे:

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

अतः, कैथेड्रस एसोसिएशन के लिए विश्वविद्यालय एक रचना है, क्योंकि कैथेड्रा विश्वविद्यालय (IMHO) से बाहर नहीं है

साझा एकत्रीकरण का सटीक शब्दार्थ आवेदन क्षेत्र और मॉडलर द्वारा भिन्न होता है।

यानी, अन्य सभी संघों को साझा एकत्रीकरण के रूप में तैयार किया जा सकता है, यदि आप केवल आपके या किसी और के कुछ सिद्धांतों का पालन कर रहे हैं। इसके अलावा देखने के लिए यहाँ


0

मानव शरीर के अंगों जैसे किडनी, लिवर, मस्तिष्क पर विचार करें। यदि हम यहां रचना और एकत्रीकरण की अवधारणा को मानचित्रित करने का प्रयास करते हैं, तो यह निम्नानुसार होगा:

किडनी और लीवर की तरह शरीर के अंगों के प्रत्यारोपण के आगमन से पहले, ये दो शरीर के अंग मानव शरीर के साथ संरचना में थे और मानव शरीर के साथ अलगाव नहीं हो सकते।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.