Roles:A role name explains how an object participates in the relationship.
आप दो वर्गों, Professor
और Book
है और वे निम्न चित्र में के रूप में जुड़े रहे हैं:
भूमिका प्रोफेसर और बुक के बीच सहयोग का एक विवरण देता है। इस मामले में प्रोफेसर संबंधित पुस्तक के लेखक हैं।
Each object needs to hold a reference to the associated object or objects. The reference is held in an attribute value within the object.
इसके लिए मैं एक आमने-सामने की बहुलता के साथ एक और उदाहरण का उपयोग करेगा।
चित्र से पता चलता है कि क्वेरी बिल्डर एक क्वेरी (और इसके विपरीत) है। इस संगठन को कोड में कैसे दिखाया गया है?
आपके पास कक्षा QueryBuilder
है जिसमें Query
नाम query
का गुण है। कोड में:
class QueryBuilder {
Query query;
}
और तुम एक वर्ग क्वेरी प्रकार QueryBuilder
qbuilder
नाम कोड में की एक विशेषता है कि है:
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
के साथ दो संगठन हैं।
तो, वर्ग खाते में हम दो क्षेत्रों, प्रत्येक संघ के लिए एक क्षेत्र होगा।
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
छोड़े गए विवरणों में से हैं।
तो अगर लेखक ने कई पुस्तकों में से एक लिखा है, तो इसका मतलब यह है कि कक्षा लेखक में पुस्तकों की एक सूची (सरणी, सरणी सूची या अन्य) होगी, और यदि ऐसा है तो यह सूची लेखक के क्षेत्र के रूप में क्यों नहीं देखी गई है (या इसके विपरीत लेखक को पुस्तक के क्षेत्र के रूप में क्यों नहीं देखा जाता है)। –
@AndrewS ने मेरा जवाब संपादित किया। उम्मीद है कि यह आपके प्रश्न हल करता है। – nakosspy
उत्तर देने के लिए धन्यवाद, केवल दो चीजें। मुझे विश्वास नहीं है कि कई रिश्तों में से कई पूरी तरह से सही या अनुमत हैं। इसके अलावा मैं पुस्तक लेखक के क्षेत्र को शामिल करने की अपेक्षा करता हूं। निश्चित रूप से यदि आप एक केस उपकरण का उपयोग करते हैं और इस रिश्ते को मॉडल करते हैं तो पुस्तक वर्ग लेखक की एक सरणी प्राप्त करता है। मैं इस सवाल से पूछता हूं क्योंकि मैं अक्सर आपके पाठ में वर्णित चूक के प्रकार देखता हूं और सोचता हूं कि क्यों। –