2013-05-24 10 views
7

के रूप में मैं भूमिका के बारे में यूएमएल बाईबल के माध्यम से पढ़नेभूमिका नाम

भूमिका: एक भूमिका का नाम कैसे एक वस्तु संबंध में भाग लेता है बताते हैं।

"प्रत्येक वस्तु जुड़े वस्तु या वस्तुओं के लिए एक संदर्भ पकड़ की जरूरत है। संदर्भ object.When भीतर एक विशेषता मान में आयोजित किया जाता है केवल एक ही संघ वहाँ तो केवल एक विशेषता एक संदर्भ पकड़े वहाँ है।"

1) उद्धृत वाक्य का क्या अर्थ है?

2) मुझे आश्चर्य है कि कुछ उदाहरण है तो इसे थोड़ा सा समझाएं?

उत्तर

11

Roles:A role name explains how an object participates in the relationship.

आप दो वर्गों, Professor और Book है और वे निम्न चित्र में के रूप में जुड़े रहे हैं:

diagram 1

भूमिका प्रोफेसर और बुक के बीच सहयोग का एक विवरण देता है। इस मामले में प्रोफेसर संबंधित पुस्तक के लेखक हैं।

Each object needs to hold a reference to the associated object or objects. The reference is held in an attribute value within the object.

इसके लिए मैं एक आमने-सामने की बहुलता के साथ एक और उदाहरण का उपयोग करेगा।

diagram 2

चित्र से पता चलता है कि क्वेरी बिल्डर एक क्वेरी (और इसके विपरीत) है। इस संगठन को कोड में कैसे दिखाया गया है?

आपके पास कक्षा QueryBuilder है जिसमें Query नाम query का गुण है। कोड में:

class QueryBuilder { 
    Query query; 
} 

और तुम एक वर्ग क्वेरी प्रकार QueryBuilderqbuilder

नाम कोड में की एक विशेषता है कि है:

class Query { 
    QueryBuilder qbuilder; 
} 

विशेषता (क्वेरी वर्ग QueryBuilder और वर्ग के लिए qbuilder के लिए क्वेरी) reference to the associated object

When there is only one association then there is only one attribute holding a reference

है

पिछले उदाहरण में, एक एसोसिएशन था, इसलिए हमारे पास संबंधित ऑब्जेक्ट का संदर्भ रखने के लिए कक्षा में एक विशेषता (फ़ील्ड) थी।

निम्नलिखित आरेख में Acount में BookItem के साथ दो संगठन हैं।

diagram 3

तो, वर्ग खाते में हम दो क्षेत्रों, प्रत्येक संघ के लिए एक क्षेत्र होगा।

class Account { 
    BookItem[] borrowed; 
    BookItem[] reserved; 
} 

ध्यान दें कि इन संगठनों कई लोगों के लिए एक हैं, तो खेतों हम संघों के लिए है कि सरणियों कि एक से अधिक BookItems रख सकते हैं।

Here आप एक अच्छा लेख ढूंढ सकते हैं जहां मैंने इस उत्तर के लिए सबसे अधिक उदाहरण उधार लिया था।

संपादित करें:Author और Book के बीच संबंध का स्पष्टीकरण।

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

के साथ पहला चित्र जो इन क्षेत्रों के नाम भी प्रदान करता है। Professor में ऑब्जेक्ट्स रखने के लिए textbook नाम वाला एक फ़ील्ड है। Book में author नाम के साथ Author ऑब्जेक्ट्स रखने के लिए एक फ़ील्ड है। इन फ़ील्ड का प्रकार आरेख द्वारा प्रदान नहीं किया जाता है।

Book[] textbook; 

या

Set<Book> textbook; 

या

List<Book> textbook; 

या

Collection<Book> textbook; 

इसके अलावा फ़ील्ड की दृश्यता है: क्षेत्र textbook निम्नलिखित से कुछ भी रूप में घोषित किया जा सकता है नहीं टी प्रदान किया गया (डिफ़ॉल्ट, निजी या सार्वजनिक हो सकता है)।

इस जानकारी को कक्षा आरेख से छोड़ा गया एक बहुत अच्छा कारण है: आरेख के लेखक ने इस संदेश के लिए महत्वपूर्ण नहीं माना कि वह आरेख के साथ संवाद करना चाहता है। हमें यह नहीं भूलना चाहिए कि यूएमएल आरेखों का उपयोग अपने कुछ पहलुओं को देखकर सिस्टम की समझ में मदद के लिए किया जाता है। आमतौर पर हम सिस्टम के विभिन्न दृष्टिकोण प्रदान करने के लिए एक से अधिक आरेख बनाते हैं। ज्यादातर मामलों में जानकारी का सबसे महत्वपूर्ण तत्व कक्षाओं के बीच संबंध है। तो कार्यान्वयन विवरण अक्सर छोड़े जाते हैं। ध्यान दें कि Book - Author एसोसिएशन के बारे में बहुत सारे कार्यान्वयन विवरण हैं जो इन आरेखों से छोड़े गए हैं। Book को कैसे बल दिया जाए, कम से कम एक Author होगा या यह सुनिश्चित करने के लिए कि Book में Author है तो Author भी Book छोड़े गए विवरणों में से हैं।

+0

तो अगर लेखक ने कई पुस्तकों में से एक लिखा है, तो इसका मतलब यह है कि कक्षा लेखक में पुस्तकों की एक सूची (सरणी, सरणी सूची या अन्य) होगी, और यदि ऐसा है तो यह सूची लेखक के क्षेत्र के रूप में क्यों नहीं देखी गई है (या इसके विपरीत लेखक को पुस्तक के क्षेत्र के रूप में क्यों नहीं देखा जाता है)। –

+1

@AndrewS ने मेरा जवाब संपादित किया। उम्मीद है कि यह आपके प्रश्न हल करता है। – nakosspy

+0

उत्तर देने के लिए धन्यवाद, केवल दो चीजें। मुझे विश्वास नहीं है कि कई रिश्तों में से कई पूरी तरह से सही या अनुमत हैं। इसके अलावा मैं पुस्तक लेखक के क्षेत्र को शामिल करने की अपेक्षा करता हूं। निश्चित रूप से यदि आप एक केस उपकरण का उपयोग करते हैं और इस रिश्ते को मॉडल करते हैं तो पुस्तक वर्ग लेखक की एक सरणी प्राप्त करता है। मैं इस सवाल से पूछता हूं क्योंकि मैं अक्सर आपके पाठ में वर्णित चूक के प्रकार देखता हूं और सोचता हूं कि क्यों। –

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