What is UML Diagrams | Class & Sequence Diagrams with Real Examples

Coder Army14,178 words

Full Transcript

हां भाई करें स्टार्ट। सो वेलकम बैक कोडर आर्मी टू आवर एलएलडी प्लेलिस्ट। आज के इस लेक्चर में हम देखेंगे यूएमएल डायग्राम्स क्या होते हैं? हम उसे कैसे रिप्रेजेंट करते हैं और उसका क्या यूज़ होता है। हमारे एलएलडी इंटरव्यूज में यूएमएल डायग्राम्स हमारे को कितने यूज़ होने वाले हैं। हम वो सब देखेंगे इस लेक्चर में। चलो जल्दी से स्क्रीन पे जंप करते हैं और शुरू करते हैं। तो अपना टॉपिक स्टार्ट करते हैं आज का जो कि है यूएमएल डायग्राम्स। तो चलो सबसे पहले समझते हैं कि ये डायग्राम्स यूएमए डायग्राम्स होते क्या हैं। ठीक है? तो आप इमेजिन करो कि आपके पास ना एक एप्लीकेशन का या एक ऐप बनाने का आईडिया है। आपके माइंड में वो आईडिया है। ठीक है? कि एक एप्लीकेशन कैसे बन सकती है। ठीक है? अब वो आईडिया ना आपको अपने फ्रेंड तक पहुंचाना है। आपको अपने फ्रेंड को ये बताना है कि वो मैंने जो अपने माइंड में आईडिया सोचा हुआ है उस एप्लीकेशन को बनाने का वो क्या आईडिया है या मैं उसको कैसे बनाऊंगा। ठीक है? तो आपके पास दो तरीके हैं अपने दोस्त तक ये बात पहुंचाने के। एक फर्स्ट तरीका कि आप ना बहुत बड़े-बड़े पैराग्राफ्स लिख दो। ठीक है? कि उस एप्लीकेशन में क्या होगा? राइट? कौन-कौन से कॉम्पोनेंट्स होंगे। वो कैसे इंटरेक्ट करेंगे, क्या-क्या ऑब्जेक्ट्स बनेंगे, एंटिटीज बनेंगे ये सब। ठीक है? आप समझ ही गए होंगे ये कितना बोरिंग तरीका है। एक और कितना लाइक नॉन इंट्यूटिव तरीका है अपने आईडिया को कन्व करने का। आपका दोस्त पढ़ेगा सारी चीजें वो समझ नहीं पाएगा। बहुत बड़े पैराग्राफ्स होंगे। राइट? बहुत ही मोनोटोनस हो जाएंगी चीजें और आप भी सब कुछ अच्छे से एक्सप्रेस नहीं कर पाओगे। तो हमारे पास एक दूसरा बहुत ही बेटर तरीका होता है। बहुत ही इंट्यूटिव तरीका होता है किसी भी एप्लीकेशन को समझाने का या इन जनरल कोई भी चीज समझाने का जिसे हम कहते हैं डायग्राम या अपने दोस्त को डायग्रामेटिकली समझाना। राइट? तो यूएमएल डायग्राम्स कुछ नहीं है। यही है। आप क्या करते हो? आपको पता है एक एप्लीकेशन कैसे बनानी है। आपके माइंड में उसका कोई रफ़ आईडिया होता है और आप उस रफ़ आईडिया को एक पेपर पे या एक यू नो कंप्यूटर पे एक्सप्रेस करते हो डायग्रामेटिकली और जब आप डायग्रामेटिकली उसे एक्सप्रेस करते हो उसका क्या मतलब है? आप एक्सप्रेस करते हो कि उसमें कौन-कौन से कॉम्पोनेंट्स होंगे? कौन-कौन से ऑब्जेक्ट्स या एंटिटीज़ होंगी और वो आपस में कैसे इंटरेक्ट कर रहे होंगे। कैसे? बेसिकली आपस में जुड़े होंगे। मैसेजेस एक दूसरे को कैसे भेज रहे होंगे। तो यही सब बस आप डायग्रामेटिकली शो कर देते हो। उसी को हम यूएमएल डायग्राम्स बोलते हैं। सिंपल। तो अब देखते हैं यूएमएल डायग्राम्स कितने तरह के होते हैं। कौन-कौन से हमें पढ़ने हैं, कौन-कौन से नहीं पढ़ने हैं वो सब देखते हैं। तो देखो मोटा-मोटा ना यूएमएल डायग्राम्स को हम दो पार्ट्स में बांटते हैं। ठीक है? तो यूएमएल डायग्राम्स को हम दो पार्ट में बांटते हैं। तो एक तो हमारे होते हैं स्ट्रक्चरल और एक हमारे होते हैं बिहेवियरल। ठीक है? अब स्ट्रक्चरल क्या होते हैं? बिहेवियरल क्या होते हैं? ये समझ लेते हैं। स्ट्रक्चरल यूएमएल डायग्राम्स आपको ये बताते हैं कि आपकी एप्लीकेशन का स्ट्रक्चर कैसा होगा? आपको नाम से ही समझ आ रहा होगा। स्ट्रक्चर कैसा होगा? मतलब कौन-कौन से आपके एप्लीकेशन में कॉमोनेंट्स रहने वाले हैं। ठीक है? और वो आपस में कैसे जुड़े होंगे एक दूसरे से। राइट? बस यही आपको बताता है स्ट्रक्चरल यूएमएल डायग्राम्स। इसको हम स्टैटिक डायग्राम्स भी कहते हैं इसीलिए क्योंकि आपको स्टैटिक स्ट्रक्चर बताता है। बेसिकली एक डायग एक एप्लीकेशन का स्टैटिक इंटरफ़ेस बताता है कि वो एप्लीकेशन दिखेगी कैसी। राइट? ऑन दी अदर हैंड हमारे पास एक होता है बिहेवियरल यूएमएल डायग्राम्स। और ये आपको बताते हैं कि आपकी जो एप्लीकेशन है उसके जो कॉम्पोनेंट्स हैं वो आपस में इंटरेक्ट कैसे कर रहे होंगे। राइट? इंटरेक्शन करने का क्या मतलब हुआ? ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में जैसे हमने लास्ट लेक्चर में भी देखा था। ऑब्जेक्ट्स का इंटरेक्शन करने का मतलब बस इतना सा होता है। कैसे वो एक दूसरे को मैसेजेस भेज रहे होंगे। एक दूसरे के मेथड्स कॉल कर रहे होंगे। बस इतना सा। तो वो कैसे इंटरेक्ट कर रहे होंगे वो हम देखेंगे बिहेवियरल यूएमएल डायग्राम्स में। और इसीलिए हम इसको डायनामिक यूएमएल डायग्राम्स भी कहते हैं। अब देखो बात ऐसी है कि हमारे पास ना सात स्ट्रक्चरल डायग्राम्स होते हैं और सात बिहेवियरल डायग्राम्स होते हैं। तो इन टोटल 14 यूएमएल डायग्राम्स हैं हमारे पास। पर डरने की बात नहीं है। आपको ये 14 के 14 नहीं पढ़ने हैं। आपको बस दो यूएमएल डायग्राम पढ़ने हैं। और उसमें आपकी पूरी एलएलडी खत्म हो जाती है। ठीक है? ऐसा क्यों? हमें बाकी के 12 क्यों नहीं पढ़ने? देखो जो क्या होता है ना कि अभी जो मैं दो बताने वाला हूं इन दोनों को छोड़ के बाकी के जो 12 यूएमएल डायग्राम्स होते हैं वो काफी ना यूज़ के स्पेसिफिक होते हैं। ठीक है? तो इन जनरल आपको पूरी की पूरी एलएलडी में या एलएलडी इंटरव्यूज में वो आपको कभी नहीं पूछने वाले। बहुत ही कोई रेयर केस होगा कि आपको कोई लाइव प्रोजेक्ट आप कर रहे होते हो जिसमें वो बाकी के यूएमएल डायग्राम्स आपको काम आते हैं। तो थ्योरेटिकली तो आप सारे पढ़ सकते हो। पर प्रैक्टिकली जो हमें इंटरव्यूज में हेल्प करेगा, जो हमें लाइव प्रोजेक्ट में हेल्प करेगा वो यही दो होते हैं। इसके अलावा काफी स्पेसिफिक एक यूज़ केस होता है जिसमें आप एक अलग यूएमएल डायग्राम बना रहे होते हो। ठीक है? तो एक बार देखते हैं हमें कौन से दो पढ़ने हैं। हमें एक तो यूएमएल डायग्राम पढ़ना है स्ट्रक्चरल का जिसे हम बोलते हैं क्लास डायग्राम। ठीक है? ये क्लास डायग्राम बहुत जरूरी है। इनफैक्ट 99% एलएलडी इंटरव्यूज में आपसे कोई ना कोई ये क्लास डायग्राम जरूर बनवाएगा। जो भी आप बेसिकली कोड लिखने वाले हो उससे पहले आपका क्लास डायग्राम जरूर बनवाएगा। तो इसको बहुत ध्यान से समझना। और दूसरा होता है हमारे पास सीक्वेंस डायग्राम। देखो सीक्वेंस डायग्राम का ऐसा है ना कि बहुत सारे इंटरव्यू में इंटरव्यू्यूज में आपसे सीक्वेंस डायग्राम नहीं बनवाएंगे। पर बहुत सारे ऐसे क्वेश्चंस हैं जो स्पेसिफिकली सीक्वेंस डायग्राम अगर आपने बना दिया या अगर उसका सीक्वेंस डायग्राम आपने समझ लिया तो वो क्वेश्चन एकदम क्लियर हो जाता है। तो उन चीजों में सीक्वेंस डायग्राम बहुत काम आता है। हम उसके एग्जांपल देखेंगे अभी आगे और वो कैसे बनाते हैं वो भी देखेंगे। तो सबसे पहले हम देखेंगे क्लास डायग्राम क्या होते हैं और उसे कैसे बनाते हैं और फिर हम जंप करेंगे सीक्वेंस डायग्राम पे। तो आप समझ गएगे अभी तक पीओएमएल डायग्राम्स दो तरीके के होते हैं। स्ट्रक्चरल और बिहेवियरल। हम बस दो ही देखने वाले हैं। एक स्ट्रक्चरल व्हिच इज़ क्लास डायग्राम और एक बिहेवियरल व्हिच इज़ सीक्वेंस डायग्राम। तो चलो स्टार्ट करते हैं अपने क्लास डायग्राम से। ठीक है? तो देखो क्लास डायग्राम होते क्या है? सिंपल है। नाम से ही पता लग रहा होगा। ये बताते हैं कि आपकी एप्लीकेशनेशंस में कौन-कौन सी क्लासेस रहने वाली हैं। ठीक है? और वो जो क्लासेस होंगी आपकी एप्ली आपकी एप्लीकेशनेशंस की वो आपस में कैसे कनेक्टेड होंगी एक दूसरे से। एक दूसरे से कैसे एसोसिएटेड होंगी। राइट? तो आपको बस ये दो चीजें एक्सप्रेस करनी होती है और आपका पूरा क्लास डायग्राम खत्म हो जाता है। ठीक है? तो हम क्लास डायग्राम में जैसे हमने कहा हमें दो चीजें ही पढ़नी है। सबसे पहले हमें पढ़ना है कि क्लास का स्ट्रक्चर कैसा होता है और कैसे हम उसे डायग्रामेटिकली एक्सप्लेन करते हैं और सेकंड उनके हम एसोसिएशन को या फिर जिसे हम कह सकते हैं कनेक्शन को कैसे दिखाते हैं। ठीक है? तो आपको बस ये दो चीज पढ़नी है और आपका क्लास डायग्राम खत्म। तो सबसे पहली चीज से शुरू करें एक बार। चलो अब देखते हैं कि आप यू अपने क्लास डायग्राम में एक क्लास को रिप्रेजेंट कैसे करते हो? तो देखो सबसे पहले क्लास को रिप्रेजेंट करने के लिए आप क्या करते हो? आप एक रेक्टेंगल ड्रॉ करते हो। ठीक है? इतना बड़ा डॉ नहीं करते हो। ऑब्वियसली मैं सिर्फ समझाने के लिए कर रहा हूं। उसके बाद जब हम बाकी क्लासेस बनाएंगे तो आप देखना। अभी आप क्या करते हो? एक रेक्टेंगल ड्रॉ करते हो और उसको तीन पार्ट्स में डिवाइड कर देते हो। ठीक है? तो जिस क्लास का बेसिकली जिस डायग्राम का जो सबसे पहला रेक्टेंगल होता है वो रिप्रेजेंट करता है कि आपकी क्लास का नाम क्या होगा। ठीक है? तो लेट्स से हम एक साथ में एक एग्जांपल भी ले लेते हैं। हमने उसमें एक कार का एग्जांपल लिया था कार क्लास का। राइट? तो आपको याद होगा हमने एग्जांपल लिया था एक क्लास कार का। तो हम इसी क्लास को रिप्रेजेंट करते हैं इस डायग्राम में। तो हम कहते हैं हमारे पास एक कार है क्लास है कार। उसके कुछ कैरेक्टर्स हो सकते हैं और कुछ बिहेवियर हो सकते हैं। आपको पता है एक ऑब्जेक्ट के अंदर कुछ कैरेक्टरिस्टिक्स होती है और कुछ बिहेवियर होती है। कैरेक्टरिस्टिक्स जो होती है किसी भी ऑब्जेक्ट की वो हम क्लास में उसको क्लास वेरिएबल्स कहते हैं और जो बिहेवियर होते हैं किसी भी ऑब्जेक्ट के उसमें हम उसको क्लास के मेथड्स कहते हैं। राइट? ये सब हमने ऊप्स में देखा ही था। तो हम सेम एग्जांपल को देखते हैं। हम लेट से हम कार के तीन कैरेक्टर्स की बात कर लेते हैं। एक तो हम कहते हैं क्लास इस कार का कोई ब्रांड होगा। तो लेट से हम स्ट्रिंग ब्रांड डिनोट कर लेते हैं। ऐसे ही इस क्लास का एक मॉडल होगा कार का। हम उसको मॉडल से रिप्रेजेंट कर लेते हैं। और एक और एक वेरिएबल रखते हैं इंटीजर टाइप का जो बताएगा इस क्लास इस कार में कितने सीसी इंजन हैं। तो हम उसको रख लेंगे इंजन सीसी। लेट्स से बस हम ये तीन वेरिएबल रखते हैं। ठीक है? इसके अलावा हम कुछ मेथड्स भी डिफाइन कर लेते हैं। बेसिकली जो क्लास के इस कार के बिहेवियर होंगे। ठीक है? तो कौन-कौन से मेथड हो सकते हैं क्लास में? हमने पहले भी देखा है। एक हम रख लेते हैं स्टार्ट इंजन। ठीक है? एक हम रख सकते हैं स्टॉप इंजन। हर गाड़ी स्टॉप हो सकती है, हर गाड़ी स्टार्ट हो सकती है। राइट? हम ऐसे ही रख सकते हैं एक्सीलरेट। ठीक है? और ऐसे ही हम रख सकते हैं ब्रेक। लेट्स से ये सारे के सारे वॉइड टाइप के हैं। अभी के लिए मान लेते हैं। ठीक है? वॉइड टाइप के हैं। तो ये हमारी कार होती है और इसी को हम ऐसे क्लास में रिप्रेजेंट करते हैं। तो अब देखते हैं इसको हम डायग्रामेटिकली कैसे रिप्रेजेंट करते हैं। तो जैसे मैंने कहा सबसे ऊपर आ जाता है क्लास का नाम। ठीक है? तो हम क्लास का नाम डिफाइन कर लेते हैं सबसे पहले। तो हमारे पास इस क्लास का नाम है कार। तो हमने यहां लिख दिया कार। ठीक है? नाइस। अब जो सेकंड रेक्टेंगल बनता है वो बताता है क्लास के सारे कैरेक्टर्स को या फिर हम उसको वेरिएबल्स भी बोल सकते हैं। ठीक है? तो हमारे पास तीन वेरिएबल थे। हम उन्हें रिप्रेजेंट कर लेते हैं। देखते हैं कैसे रिप्रेजेंट करते हैं। तो सबसे पहले आप लिखते हो वेरिएबल का नाम। जैसे वेरिएबल का नाम है ब्रांड और उसके बाद आता है उसका डेटा टाइप। तो बेसिकली उल्टा हो जाता है रिप्रेजेंटेशन में। वैसे ही आपने मॉडल को रिप्रेजेंट कर लिया। इसका आ गया स्ट्रिंग और हमारा तीसरा था इंजन का सीसी। राइट? तो हम रिप्रेजेंट कर लेते हैं इंजन CC और ये भी टाइप का होता है स्ट्रिंग। सॉरी ये हमने कहा था ये हमारा स्ट्रिंग टाइप का नहीं होगा। ये हमारा इंटिजर टाइप का होगा। तो इसे हम बोल लेते हैं इंट। ठीक है? तो इस तरह हम रिप्रेजेंट करते हैं क्लास के सारे कररेक्टर्स को। अब आप समझ ही गए होंगे जो लास्ट का रेक्टेंगल है वो हमारे को क्या बताएगा? क्लास के सारे बिहेवियर्स को या फिर मेथड्स को। ठीक है? तो चलो क्लास के सारे बिहेवियर को रिप्रेजेंट कर लेते हैं एक बार। तो सबसे पहले था हमारे पास स्टार्ट इंजन। ठीक है? सेम तरीके से इसका रिटर्न टाइप आ जाएगा। ऐसे ही है हमारे पास स्टॉप इंजन। सेम तरीके से हमारा इसका रिटर्न टाइप आ जाएगा। वॉइड वॉइड सारे वॉइड थे। इसके बाद हमारा है एक्सलरेट। सो सेम तरीके से रिटर्न टाइप आ जाएगा और लास्ट में है हमारा ब्रेक सेम तरीके से रिटर्न टाइप आ जाएगा। तो इस तरह बेसिकली हम अपने पूरे के पूरे कार क्लास को रिप्रेजेंट कर लेते हैं एक यूएमएल डायग्राम में। ठीक है? तो हमने सबसे पहले रखा क्लास का नाम। उसके बाद हमने रखा क्लास के कैरेक्टर्स को और उसके बाद रखा हमने बिहेवियर्स को। क्या हमने पूरी की पूरी क्लास को अब रिप्रेजेंट कर लिया है? मेरे ख्याल से कर लिया। राइट? पर एक चीज रह गई है जो अभी तक हमने इसमें रिप्रेजेंट नहीं करी और वो हमने अपनी-अपनी क्लास में भी नहीं बनाई थी। तो देखते हैं इसके अलावा बेसिकली हमारी क्लास में इस कैरेक्टर्स के अलावा और उसके बिहेवियर्स के अलावा हम एक और चीज डिफाइन करते हैं जिसे हम बोलते हैं एक्सेस मॉडिफायर्स। राइट? आपको याद होगा हमारे पास तीन तरह के एक्सेस मॉडिफायर होते हैं। पब्लिक, प्राइवेट और प्रोटेक्टेड। हमने ये ऊप्स में भी पढ़ा था। तो एक बार उसका क्विक रिवीजन ले लेते हैं और फिर हम देखते हैं हम एक्सेस मॉडिफायर को डायग्रामेटिकली कैसे रिप्रेजेंट करते हैं। तो देखो हमारे पास तीन एक्सेस मॉडिफायर होते हैं। एक होता है हमारे पास पब्लिक, एक होता है प्रोटेक्टेड और एक होता है प्राइवेट। राइट? तो ये हमारे पास क्या होते हैं? एक्सेस मॉडिफायर होते हैं। ठीक है? तो अब हम ना बेसिकली तीन अ चीजें ले लेते हैं। तीन क्या कहते हैं? अलग-अलग सिचुएशंस ले लेते हैं। ठीक है? एक तो हम लेते हैं विद इन द क्लास। बेसिकली हमें ये देखना है कि इन एक्सेस मॉडिफायर्स को कोई कहां-कहां से एक्सेस कर सकता है। राइट? तो एक हम देख लेते हैं विद इन क्लास। एक हम देख लेते हैं अ फ्रॉम चाइल्ड क्लास। और एक हम देख ले सकते हैं आउटसाइड द क्लास। ठीक है? तो जैसे कि आपको पता होगा कि जो हमारा पब्लिक एक्सेस मॉडिफायर होता है ना उसको हम विद इन द क्लास एक्सेस तो कर ही सकते हैं। बेसिकली क्लास के अपने दूसरे कैरेक्टर्स और दूसरे क्लास के मेथड्स उस वेरिएबल को एक्सेस कर सकते हैं जिसका एक्सेस मॉडिफायर पब्लिक है। ठीक है? वो तो ऑब्वियस है। वो चाइल्ड क्लास से भी एक्सेस हो सकती है और आउटसाइड से क्लास से भी एक्सेस हो सकती है। यानी कि पब्लिक को हर कोई एक्सेस कर सकता है। प्रोटेक्टेड की क्या कहानी थी? विद इन द क्लास। यस। आपका एक रिवीज़ हो जाएगा। अगर आप इसको ध्यान से याद करोगे हमने ऊप्स में क्या पढ़ा था? चाइल्ड क्लास यस लेकिन आउटसाइड द क्लास नो कोई इसको बाहर से एक्सेस नहीं कर सकता। लेकिन चाइल्ड क्लासेस प्रोटेक्टेड एक्सेस कर सकती है। और लास्ट में जो प्राइवेट होता है ये सबसे ज्यादा कंट्राडिक्ट होता है। सबसे ज्यादा बेसिकली इसको सिर्फ विद इन द क्लास एक्सेस किया जा सकता है। ना तो ये क्लास के बाहर एक्सेस होता है ना तो ये एक चाइल्ड क्लास एक्सेस होता है। ठीक है? तो सबसे ज्यादा कंट्राडिक्ट जो है प्राइवेट होता है। ठीक है? तो हमने तीन एक्सेस मॉडिफायर देखे। राइट? पब्लिक प्राइवेट प्रोटेक्टेड। यह हमने ऑलरेडी उसमें देखा हुआ है ऊप्स के लेक्चर में। अब बस हमें इसको रिप्रेजेंट करना है। तो देखते हैं ये जो हमारी क्लास थी कार, हम एक्सेस मॉडिफायर इसमें कैसे रिप्रेजेंट करते हैं। अच्छा, क्लास जो हम नॉर्मल कोड लिखते हैं उसपे हम कैसे रिप्रेजेंट करते हैं वो तो आपको पता ही होगा। हम ये लिखने से पहले ऊपर लिख देते हैं पब्लिक। लेट्स से अगर ये हमारे सारे के सारे वेरिएबल्स पब्लिक रहने वाले हैं या फिर प्राइवेट या प्रोटेक्टेड हम ऊपर लिख देते हैं और लेट्स से ये सारे के सारे फंक्शनंस भी पब्लिक हैं तो इसके ऊपर भी हम पब्लिक अलग से लिख सकते हैं या जो पब्लिक ऑलरेडी था उसको लिख सकते हैं और लेट्स से हम इसको प्राइवेट कर देते हैं जो कि बेसिकली हमारा एब्स्ट्रैक्शन सब बेसिकली इनकैप्सुलेशन का सेकंड पार्ट यही कहता है राइट कि आपके जो अ डेटा वेरिएबल्स हैं यानी कि आपके जो कैरेक्टर्स हैं उसमें डेटा सिक्योरिटी मिलनी चाहिए। जैसे कि हमने ऊप्स के लेक्चर में देखा था। तो हम उसके लिए क्या करते हैं? जो भी हमारे कैरेक्टर्स हैं उसको हम प्राइवेट बोल देते हैं और जो भी हमारे बिहेवियर है उसको हम पब्लिक बोल देते हैं। अब देखते हैं हम इसको रिप्रेजेंट कैसे कर सकते हैं प्रोग्राम बेसिकली डायग्राम में। तो बहुत सिंपल है। ठीक है? मैं यहीं पे बताता हूं इन तीनों का रिप्रेजेंटेशन। आप बहुत इजीली समझ जाओगे। देखो पब्लिक को रिप्रेजेंट करने के लिए हम प्लस सिंबल बनाते हैं। प्रोटेक्टेड को रिप्रेजेंट करने के लिए हम हैश सिंबल बनाते हैं और प्राइवेट को रिप्रेजेंट करने के लिए हम माइनस सिंबल बनाते हैं। दैट्स इट। तो हम क्या करते हैं? लेट्स से हम अपने तीनों के तीनों कररेक्टर्स को पब्लिक रखने वाले थे। तो हम इनके आगे प्लस प्लस प्लस सिंबल बना देते हैं। यानी कि ये पब्लिक हो गया। हम अपने सारे मेथड्स को लेट्स से हम प्राइवेट कर देते हैं। तो हम इनके आगे माइनस माइनस माइनस माइनस सिंबल बना देते हैं। ये हमारे प्रोटेक्ट सॉरी पब्लिक हो गए। ठीक है? अगर हमें इनमें से किसी को प्रोटेक्टेड रखना पड़ता। लेट से हम इंजन को कहते इंजन हम प्रोटेक्टेड रखते तो हम इंजन के आगे हैश बना देते तो ये प्रोटेक्टेड हो जाता। दैट्स इट। हमने अब पूरी की पूरी क्लास को रिप्रेजेंट कर लिया। उसके एक्सेस मॉडिफायर्स को भी रिप्रेजेंट कर लिया। उसके क्लास के कैरेक्टर्स, बिहेवियर्स, क्लास का नाम सब रिप्रेजेंट कर लिया। और यही तरीका है क्लास को रिप्रेजेंट करने का। अब कुछ भी रह गया इस क्लास में और कुछ रिप्रेजेंट करने के लिए। एक और लास्ट चीज रह गई है। बस वो लास्ट चीज है जो पूरा का पूरा डायग्रामेटिकली एक्सप्लेन कर देगी एक क्लास को। और वो लास्ट चीज क्या है? देखो हमारे पास दो तरह की क्लासेस होती हैं। एक तो हमारे पास होती है एब्स्ट्रैक्ट क्लास। राइट? और एक हमारे पास होती है कंक्रीट क्लास। एब्स्ट्रैक्ट क्लास क्या होती है? आपको पता ही होगा। एब्स्ट्रैक्ट क्लास वो क्लास होती है जिसमें कोई ना कोई एक वर्चुअल मेथड होता है। बेसिकली ऐसा मेथड जिसकी हम डेफिनेशन नहीं देते। बस वहां डिक्लेरेशन रखते हैं और उसको नीचे चाइल्ड क्लास में उसको डिक्लअर करते हैं, डिफाइन करते हैं। राइट? तो अगर हमारी ये जो क्लास है, ये एब्स्ट्रैक्ट क्लास है। तो इसके लिए हम क्या करते हैं? हम अपनी क्लास के ऊपर एब्स्ट्रैक्ट ऐसे करके लिख देते हैं। तो यह रिप्रेजेंट करता है कि हमारी ये वाली जो क्लास है वो एब्स्ट्रैक्ट क्लास है। यानी कि इसके सारे मेथड्स डिफाइन नहीं होंगे। राइट? और अगर हमारी ये कंक्रीट क्लास होती यानी कि एब्स्ट्रैक्ट क्लास नहीं होती तो हमें ये लिखने की जरूरत नहीं होती। हम कुछ भी नहीं लिखते। वो कंक्रीट क्लास रिप्रेजेंट करती। तो अब जो भी हमने यहां समझा उसका एक जेनेरिक ओवरव्यू ले लेते हैं। ठीक है? तो मैंने कहा एक क्लास को रिप्रेजेंट करने के लिए हम एक रेक्टेंगल ड्रॉ करते हैं। उस रेक्टेंगल के तीन पार्ट्स बनाते हैं। ठीक है? पहले पार्ट में हम लिखते हैं क्लास का नाम। ठीक है? और ऊपर हम ऐसे रिप्रेजेंट कर लेते हैं अगर वो एब्स्ट्रैक्ट क्लास है तो। ठीक है? अच्छा। तो हम अ जो हमारा सेकंड रेक्टेंगल है उसमें हम क्या लिखते हैं? क्लास के सारे वेरिएबल्स। सो लेट्स से हमारे पास दो वेरिएबल हैं। वेरिएबल वन वेरिएबल टू और यहां उनके बाद उनका आ जाता है डेटा टाइप। वैसे यहीं आ जाएगा डेटा टाइप और यहां उनके कुछ एक्सेस मॉडिफायर आ जाते हैं। ठीक है? उसी तरह से हम अपने मेथड को रिप्रेजेंट कर सकते हैं। मेथड वन लेट्स से मेथड टू। तो ये दो तरह के मेथड्स हो गए। और अगेन इनका आ जाएगा डेटा टाइप डेटा टाइप और लेट्स से एक्सेस मॉडिफायर। तो इस तरह से हम अपनी पूरी की पूरी एक क्लास को रिप्रेजेंट करते हैं यूएमएल डायग्राम में। तो ये आपने समझ लिया। यानी कि आपने ये फर्स्ट पॉइंट समझ लिया कि क्लास के स्ट्रक्चर को हम कैसे रिप्रेजेंट करते हैं। अब बस एक चीज और रह गई है कि क्लास के एसोसिएशंस को या उनके कनेक्शंस को हम कैसे शो करते हैं। अगर एक बार आपने ये समझ लिया तो हमारा पूरा का पूरा यूएमए डायग्राम खत्म हो जाएगा। क्लास डायग्राम खत्म हो जाएगा। चलो अब चलते हैं क्लास के एसोसिएशंस की तरफ। ठीक है? एसोसिएशंस। ठीक है? अब क्या होता है एसोसिएशन? देखो, बहुत सिंपल है। आपने इनफैक्ट एसोसिएशनंस पहले पढ़े हुए हैं। ठीक है? मैं आपको बताता हूं। एसोसिएशंस कुछ नहीं होता। दो क्लास आपस में कनेक्टेड होती है। राइट? क्यों कनेक्टेड होती है? क्योंकि या तो कोई क्लास किसी का चाहे किसी की चाइल्ड क्लास होगी। राइट? या फिर कोई क्लास किसी और क्लास से किसी और तरीके से रिलेटेड होगी। बस दो क्लास जब भी आपस में जुड़ी होंगी, उनको हम बोलते हैं उनका एसोसिएशन है। ठीक है? एक दूसरे पे डिपेंडेंसी है एक क्लास की। राइट? हम ये कहते हैं। तो एक बार देख लेते हैं इसका पूरी हायरार्की क्या होती है? कितने तरह के एसोसिएशंस होते हैं हमारे पास अ प्रोग्राम में C++ में बेसिकली और UML डायग्राम में उसे कैसे रिप्रेजेंट करते हैं? और ये सिर्फ C++ स्पेसिफिक नहीं है। इनफैक्ट हर प्रोग्रामिंग लैंग्वेजज़ में जो भी ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज होती है उसमें यही तरह के एसोसिएशंस होते हैं। यही तरह के इंटरेक्शंस होते हैं। तो ये प्रोग्रामिंग स्पेसिफिक कांसेप्ट नहीं है। ये एलएलटी स्पेसिफिक कांसेप्ट ज्यादा है। ठीक है? तो इसको ऐसे समझते हैं। ठीक है? हमने कहा कि हमें देखना है एसोसिएशंस कितने तरह के होते हैं। तो हमें इनके पार्ट्स करने हैं। तो सबसे पहले तो हमने कहा मोटा-मोटा एसोसिएशन होते हैं दो तरह के। ठीक है? एक होता है क्लास एसोसिएशन और एक होता है ऑब्जेक्ट एसोसिएशन। अब क्या है? है क्लास एसोसिएशन और ऑब्जेक्ट एसोसिएशन। देखो ये सब ना बहुत थ्योरिटिकल चीजें हैं। एक बार समझ लो जिंदगी भर याद रहेंगी। और इनफैक्ट आपने ये चीज़ समझी भी हुई है, पढ़ी भी हुई है। अभी जब ये नीचे मैं बनाऊंगा सारी चीजें तो आपको समझ आ जाएगा। तो ये जो क्लास एसोसिएशन होती है ना ये बस एक तरह की होती है जिसे हम बोलते हैं इन्हहेरिटेंस। अब याद आया? तो आपने अभी तक जो इन्हहेरिटेंस पढ़ा था वो एक तरह का एसोसिएशन था। वो इन्हहेरिटेंस क्या कहता है? कि एक चाइल्ड क्लास होगी, एक पेरेंट क्लास होगी। बेसिकली पेरेंट क्लास होगी, एक चाइल्ड क्लास होगी। तो चाइल्ड क्लास होगी जो पेरेंट क्लास को क्या करेगी? इन्हहेरिट करेगी। उसको एक्सटेंड करेगी और उसमें कुछ प्रॉपर्टी होंगी। पेरेंट में भी कुछ प्रॉपर्टी होंगी। जो चाइल्ड में प्रॉपर्टी होंगी वो पेरेंट की प्रॉपर्टी को ऑलरेडी ले रही होगी। तो ये सब इन्हहेरिटेंस कहता है। आपने ऊप्स में पढ़ा भी था। राइट? तो ये जो इन्हहेरिटेंस है ये एक तरह का एसोसिएशन ही तो है। एक चाइल्ड क्लास और एक पेरेंट क्लास को जोड़ ही रहा है ना एसोसिएशन इन्हहेरिटेंस। राइट? तो एक तरह का एसोसिएशन है। तो इसको इस एसोसिएशन को हम बोलते हैं क्लास लेवल एसोसिएशन जिसमें इन्हहेरिटेंस आता है। इसके अलावा हमारा जो दूसरे तरह का एसोसिएशन होता है वो ऑब्जेक्ट का एसोसिएशन। अब इसमें ना कहने को तो तीन चीजें बनती हैं। तो कहने को तीन चीजें बनती हैं। सबसे पहली चीज है सिंपल एसोसिएशन। ठीक है? सिंपल एसोसिएशन दूसरा होता है हमारे पास एग्रीगेशन और तीसरा होता है हमारे पास कंपोज़शन ओके तो क्या होता है ये तीनों सिंपल एसोसिएशन एग्रीगेशन और कंपोज़शन अब इसे समझते हैं ठीक है देखो सुनने में या फिर समझने में लग रहा होगा। बहुत कॉम्प्लिकेटेड हो गया। एक क्लास एसोसिएशन हो गई। एक ऑब्जेक्ट एसोसिएशन हो गया। पर ये कुछ भी नहीं है। इन्हहेरिटेंस आपने ऑलरेडी पढ़ा ही हुआ है। ठीक है? इसके अलावा आपको बस ये तीन चीजें पढ़नी है। और इंटरेस्टिंगली आपको एक चीज़ बताऊं। ये सिंपल एसोसिएशन हो, एग्रीगेशन हो या कंपोज़िशन हो। इसको कंबाइनली हम कंपोज़िशन ही बोल लेते हैं। क्यों? क्योंकि इसको रिप्रेजेंट करने का एक ही तरीका है प्रोग्रामेटिकली। बस ये थ्योरेटिकली अलग-अलग है। ठीक है? तो रियल वर्ल्ड पे जैसे हम रियल लाइफ को राइट रिप्रेजेंट कर रहे थे ना प्रोग्रामिंग में ऊप्स में भी हमने यही देखा था। तो यूएमएल डायग्राम भी तो वही कर रहा है। उन ऑब्जेक्ट्स को एक डायग्रामेटिकली रिप्रेजेंटेशन दे रहा है। राइट? तो रियल वर्ल्ड में हमारे पास क्या होता है ना? सिंपल एसोसिएशन, एग्रीगेशन और कंपोज़िशन। ये जो ऑब्जेक्ट एसोसिएशन है ये तीनों सुनने में अलग-अलग लगते हैं। उन ऑब्जेक्ट्स का रिलेशनशिप अलग-अलग दिखता है। पर जब वो उसे प्रोग्रामेटिकली रिप्रेजेंट करते हैं तो वो एक जैसे हो जाते हैं। कैसे? वो आपको अभी समझ आ जाएगा। तो हमें बस समझ लो ये दो ही चीजें पढ़नी है बेसिकली। एक तो हमें पढ़ना है इन्हहेरिटेंस क्या होता है और दूसरा हमें पढ़ना है कंपोज़िशन क्या होता है। ठीक है? तो बस एक इन्हहेरिटेंस देखना है और कंपोज़िशन देखना है। तो अब एक-एक करके दोनों चीजें देखते हैं। ठीक है? सबसे पहले इन्हहेरिटेंस सबसे सिंपल ये तो आपने ऑलरेडी पढ़ा हुआ है। इन्हहेरिटेंस क्या होता है? देखो इन्हहेरिटेंस बहुत सिंपल है। ठीक है? हमें ऑलरेडी पता है। लेट्स से हमारे पास एक क्लास होती है ए। ठीक है? उस क्लास में लेट्स से एक मेथड है मेथड वन। ऐसे ही हमारे पास एक क्लास होती है बी जो हम कहते हैं इन्हहेरिट करती है क्लास ए को तो हम लिख देते हैं लेट्स से इन्हहेरिट्स क्लास ए पब्लिकली इन्हहेरिट्स क्लास ए और उसमें हम एक मेथड बना देते हैं मेथड टू ठीक है ये होता है। अब हम कहते हैं कि जब भी हम क्लास B का ऑब्जेक्ट बनाएंगे तो समझ लो जब आप बेसिकली मेन फंक्शन के अंदर लेट्स से ये मेन फंक्शन है आपका। इसके अंदर जब आप ऐसे लिखोगे कि B स्टार लेट्स से B = न्यू B तो आपने B का एक ऑब्जेक्ट बना दिया जिसका नाम है स्मॉल B। अब आप इस B पे दोनों मेथड कॉल करा सकते हो। आप B डॉट मेथड वन भी कॉल कर सकते हो और B एरो मेथड टू भी कॉल कर सकते हो। आप ऐसा क्यों कर सकते हो? क्योंकि अगेन क्लास बी जो है वो क्लास ए का चाइल्ड है। तो ऑब्वियसली बी में वो सारे मेथड्स आ जाएंगे जो क्लास ए में है। और क्लास बी में अपने कुछ स्पेशलाइज्ड मेथड भी हो सकते हैं। यही तो आपने इन्हहेरिटेंस में पढ़ा था। ठीक है? तो ये इन्हहेरिटेंस जो है बेसिकली जो आपको ऑलरेडी पता है। इसको हम यूएमएल डायग्राम में कैसे रिप्रेजेंट करते हैं। ठीक है? उससे पहले एक और चीज़ समझ लो इन्हहेरिटेंस की जो शायद आपको ऑलरेडी पता हो और नहीं पता होगी तो आपको बहुत इंटरेस्टिंग लगेगी। जो इन्हहेरिटेंस होता है ना जो इन्हहेरिटेंस होता है वो एक इज अ रिलेशनशिप होता है। अब क्या मतलब भैया इसका इज़ अ रिलेशनशिप। देखो इसको ऐसे समझते हैं। लेट्स से हमारे पास एक एनिमल क्लास है। ठीक है? लेट्स से ये पेरेंट एनिमल क्लास है। और हमने कहा इसके कई सारे चाइल्ड हो सकते हैं। राइट? कई सारे एनिमल्स हो सकते हैं। मैं कह रहा हूं तीन तरह के एनिमल हम करते हैं। एक हम लेते हैं काऊ। एक हम लेट लेट से ले लेते हैं टाइगर और एक हम ले लेते हैं ह्यूमन को भी। ठीक है? तो हमने कहा एक एनिमल क्लास है और तीन तरह के उसके चाइल्ड क्लास रख सकते हैं। काऊ, टाइगर, ह्यूमन। ठीक है? अब आपको समझ आ रहा होगा ये एक पेरेंट, चाइल्ड रिलेशनशिप है कि एनिमल जो है वो पेरेंट हो गया और काऊ, टाइगर और ह्यूमन जो है वो चाइल्ड हो गए। पर क्या हम रियल लाइफ में ऐसे नहीं कहते कि काऊ इज़ अ एनिमल। ठीक है? वैसे ही टाइगर जो है इज एन एनिमल। ऐसे ही ह्यूमन इज आल्सो इज अ एनिमल। तो बेसिकली जो हम ये इज अ लिखते हैं इस रिलेशनशिप को इज अ रिलेशनशिप बोलते हैं। और इन्हहेरिटेंस हमेशा इज़ अ रिलेशनशिप दिखाता है। क्यों दिखाता है? क्योंकि वो यही तो कह रहा होता है कि ये जो चाइल्ड्स हैं ना ये भी पेरेंट ही हैं। मतलब पेरेंट की तरह ही हैं। पेरेंट के एक वंशज ही तो हैं। तो वैसे ही काऊ इज़ एनिमल। टाइगर इज़ एनिमल। ह्यूमन इज़ ए एनिमल। राइट? इसके अलावा आप और क्या सोच सकते हो? लेट्स से मैं बोलता हूं हमने लास्ट लास्ट वीडियो में जब हम ऊप्स पढ़ रहे थे हमने कार का एग्जांपल लिया था। राइट? तो हमने कहा था कि हमारे पास एक कार थी और हमारे पास उसकी एक चाइल्ड क्लास हो सकती है लेट्स से मैनुअल कार। तो उसी तरीके से हम यहां भी कह सकते हैं कि मैनुअल कार इज़ अ कार। राइट? ऐसे ही इलेक्ट्रिक कार इज़ आल्सो अ कार। तो ये जो इज़ अ रिलेशनशिप शो होता है ना, इसको हम इन्हहेरिटेंस कहते हैं। ठीक है? अब ये आपको यूनिक लगा होगा और आपको ऑलरेडी नहीं पता होगा। अब अगर आपको पता लग गया इज अ रिलेशनशिप होता है तो समझ लेते हैं इन्हहेरिटेंस को रिप्रेजेंट करने के लिए बेसिकली यूएमएल डायग्राम में हम एक एरो का यूज़ करते हैं तो ये हमारा दिखाता है एक इज़ अ रिलेशनशिप या फिर आपका क्या इन्हहेरिटेंस रिलेशनशिप। ठीक है? तो ये हम ड्रॉ करते हैं इन्हहेरिटेंस को रिप्रेजेंट करने के लिए यूएमएल डायग्राम में। ठीक है? एक बार अब आपने इन्हहेरिटेंस समझ लिया। अब फटाफट से कंपोज़िशन समझ लेते हैं क्या होता है? इन्हहेरिटेंस तो आपको ऑलरेडी पता था। कंपोजिशन हो सकता है आप में से बहुतों के लिए नया हो। तो उसको थोड़ा ध्यान से समझते हैं। तो देखो इन्हहेरिटेंस तो आपको ऑलरेडी पता ही होगा पर हो सकता है कंपोजिशन आप में से बहुतों के लिए नया हो। ठीक है? तो अगर ये आपके लिए आप में से बहुतों के लिए नया है ना कंपोज़िशन तो ध्यान से समझना आपको बहुत इंटरेस्टिंग लगेगा। जैसे मैंने बोला था इन्हहेरिटेंस एक इज अ रिलेशनशिप होता है ना वैसे ही जो कंपोजशन है वो एक हैज़ अ रिलेशनशिप होता है। अब क्या मतलब हैज़ अ रिलेशनशिप का? इसको हम एक बार ध्यान से देखेंगे। जब हम बेसिकली तीनों तरह के कंपोज़िशन चाहे वो सिंपल एसोसिएशन हो, एग्रीगेशन हो या कंपोज़िशन खुद हो। तीनों तरह में ये हैज़ अ रिलेशनशिप ही मेंटेन होता है। इनफैक्ट जब हम उसको प्रोग्रामेटिकली रिप्रेजेंट करते हैं तो भी हम उसको एक ही तरीके से रिप्रेजेंट कर सकते हैं। बस थ्योरेटिकली जो सिंपल एसोसिएशन है और जो एग्रीगेशन है और जो कंपोज़िशन है उनमें एक बहुत ही छोटा बहुत ही माइन्यूट फर्क होता है और वो फर्क भी सोच का फर्क है। अब सोच का फर्क क्या होता है भैया? आप बोलोगे है ना? देखो सोच का फर्क ये होता है कि जब आप दो ऑब्जेक्ट के बीच के रिश्ते को समझते हो तो आप क्या समझते हो कि वो कैसे रिलेटेड होंगे। राइट? बस उतनी सी सोच का फर्क है। अभी जब हम एग्जांपल देखेंगे तीनों के तो आप समझ जाओगे मैं क्या कहना चाहता हूं। पहले तो ये समझ लो जैसे इन्हहेरिटेंस एक इज़ अ रिलेशनशिप है। कंपोज़िशन एक हैज़ अ रिलेशनशिप है। अब ये हैज़ अ रिलेशनशिप क्यों है? वो भी आपको धीरे-धीरे समझ आएगा। तो सबसे पहले डिस्कस करते हैं। हमने कहा था तीन तरह के कॉम्पो तीन तरह के कॉम्पोज़शंस हो सकते हैं। एक तो हम बोलते हैं सिंपल एसोसिएशन। क्या होता है सिंपल एसोसिएशन? देखो ये ना सबसे वीकेस्ट फॉर्म ऑफ इंटरेक्शन है दो क्लासेस के बीच में। ठीक है? या फिर एक ऐसा मान लो सबसे सिंपल फॉर्म ऑफ इंटरेक्शन है दो क्लासेस के बीच में। देखो क्या होता है सिंपल एसोसिएशन? मैं कहता हूं लेट्स से हमारी एक क्लास है। अ एक ह्यूमन लेट्स से एक बंदा ले लेते हैं जिसका नाम है लेट्स से अर्जुन। ठीक है? अर्जुन एक क्लास हो सकती है। ठीक है? और एक क्लास है लेट्स से हाउस। ठीक है? अब आप सोचो अर्जुन क्लास और हाउस क्लास में क्या रिलेशनशिप हो सकता है? तो अगर आप इसको ध्यान से सोचोगे ना तो अर्जुन क्लास और हाउस क्लास में रियल लाइफ में आप कैसे बोलते हो? आप ऐसे बोलते हो अर्जुन लिव्स इन अ हाउस। राइट? तो आप रियल लाइफ में जब आप बोलते हो आप इसको ऐसे बोलते हो कि अर्जुन लिव्स इन अ हाउस। ठीक है? तो बेसिकली और कोई तरह का रिश्ता नहीं हो सकता। एक अर्जुन में और एक हाउस में कि अर्जुन जो है घर में रहता है। दैट्स इट। सिंपल। ठीक है? तो एकदम सिंपल रिलेशनशिप में जिसमें दो ऑब्जेक्ट रिलेटेड तो हैं पर कोई कॉम्प्लेक्स रिलेशनशिप नहीं है उनका या फिर उससे ज्यादा बढ़ के उनके बीच में एक सिंपल लिंक होने के से ज्यादा बढ़के और कोई रिश्ता नहीं है। तो उसको आप बोलते हो सिंपल एसोसिएशन। अर्जुन लिव्स इन अ हाउस। सिंपल हो गया। ठीक है? अब इस सिंपल एसोसिएशन को समझाने के लिए यूएमएल डायग्राम्स में आप एक ऐसा एरो ड्रॉ करते हो। ठीक है? इसको ऐसे समझ लो। आप एक ऐसा एरो ड्रॉ करते हो। बेसिकली इन्हहेरिटेंस पे आपने जो एरो ड्रॉ किया था वो ऐसे बंद एरो ड्रॉ किया था। इसको समझाने के लिए आप एक ओपन एरो ड्रॉ करते हो जो आप कहते हो दिस ऑब्जेक्ट इज़ रिलेटेड टू दिस ऑब्जेक्ट। ठीक है? या दिस ऑब्जेक्ट हैज़ अ दिस ऑब्जेक्ट। मैंने कहा था कि हैज़ अ रिलेशनशिप है। वो क्यों है वो आपको धीरे-धीरे समझ आ जाएगा। क्योंकि आप यहां पे भी देख सकते हो। तो आप कह सकते हो अर्जुन हैज़ अ हाउस। सिंपल आप कहीं भी जहां पे मैं कहूंगा कंपोज़िशन चाहे वो सिंपल हो, एग्रीगेशन हो या एसोसिएट या कंपोज़िशन खुद हो। ठीक है? जब भी आप उसमें हैज़ अ डाल सको तो वो एक कंपोज़िशन रिलेशनशिप हो जाएगा। जैसे आप इसमें डाल सकते हो। अर्जुन हैज़ अ हाउस। डाल सकते हो। तो एक हैज़ अ रिलेशनशिप है। हां। तो मैंने कहा इसको रिप्रेजेंट करने के लिए आप एक सिंपल एरो बनाते हो जो ओपन होता है और वो आपका सिंपल एसोसिएशन शो कर सकता है। तो जैसे अगर मैं इसको रिप्रेजेंट करता तो मैं क्या करता? मैं एक बेसिकली क्लास बनाता अर्जुन की। ये वैसे ही क्लास है जैसे हमने ऊपर बनाया जाना सीखा था। ऐसे ही एक मैं क्लास बनाता हाउस की। राइट? अब उसके यहां पे कुछ मेथड्स और वेरिएबल्स होते हैं। सेम यहां पे कुछ मेथड्स वेरिएबल होते हैं। और मैं कहता अर्जुन हैज़ अ हाउस। तो मैंने शो कर दिया अर्जुन हैज़ अ हाउस या फिर अर्जुन लिव्स इन अ हाउस या फिर एक सिंपल एसोसिएशन शो कर दिया। तो बेसिकली ये एग्जांपल हो गया आपका सिंपल एसोसिएशन का। अब आगे बढ़ते हैं और देखते हैं सिंपल एसोसिएशन के अलावा हमारे पास होता है एग्रीगेशन। अब आपको ये समझ एग्रीगेशन पढ़ के समझ आ जाएगा कि क्यों सिंपल एसोसिएशन एकदम सिंपल रिश्ता था और एग्रीगेशन थोड़ा सा कॉम्प्लिकेटेड है। कॉम्प्लिकेटेड नहीं है। थोड़ा सा ज्यादा कॉम्प्लेक्स है। आप इसको ऐसे कह सकते हो कि थोड़ा इन इस सेंस में कि इसमें दो ऑब्जेक्ट थोड़े ज्यादा इंटरलिंक्ड है एक दूसरे से रादर दैन सिंपल एसोसिएशन में। कैसे? चलो देखते हैं। एग्रीगेशन क्या होता है? देखो एग्रीगेशन कहता है इसको मैं एग्जांपल से समझाता हूं। लेट्स सपोज़ हमारी एक क्लास है रूम। ठीक है? तो इसको मैं इसी तरह क्लास की तरह रिप्रेजेंट कर लेता हूं। जैसे हम यूएमए में डायग्राम में रिप्रेजेंट करते हैं। अब ठीक है? एक क्लास है रूम। इस रूम के पास अपने कुछ कररेक्टर्स और वेरिएबल्स हो सकते हैं। राइट? अब मैं कुछ और क्लास बनाता हूं। जैसे कि एक क्लास मैंने बना दी बेड। ऐसे ही मैंने क्लास बना दी लेट्स से चेयर। ठीक है? और कुछ क्लास बना लेता हूं। लेट्स से मैं सोफा। अब सोफा, बेड और चेयर। ये जो तीन क्लासेस हैं ये रूम से कैसे रिलेटेड हैं? अगर आप रियल लाइफ में देखो तो सोफा, बेड और चेयर तीनों रूम का एक हिस्सा होते हैं। राइट? रूम के अंदर प्रेजेंट होते हैं। तो इसको हम बोलते हैं एक एग्रीगेशन रिलेशनशिप। बेसिकली इस रिलेशनशिप में क्या होता है? एक ऑब्जेक्ट होता है। ठीक है? एक मेन ऑब्जेक्ट होता है। जिसके अंदर छोटे-छोटे अलग-अलग ऑब्जेक्ट्स होते हैं। तो ये जैसे इसको हम ऑब्जेक्ट टू बोल लेते हैं। इसको ऑब्जेक्ट थ्री बोल लेते हैं। इसको ऑब्जेक्ट फोर और इसको ऑब्जेक्ट फाइव बोल लेते हैं। ठीक है? और ये जो मेन ऑब्जेक्ट होता है ना ये एग्रीगेटर का काम करता है। यानी कि एक कंटेनर का काम करता है अपने बाकी ऑब्जेक्ट्स के लिए। तो जैसे इस केस में ये जो रूम है ये एक कंटेनर ऑब्जेक्ट है। ठीक है? क्योंकि रूम के अंदर ही एक रूम के अंदर ही हमारे पास सोफा होगा, बेड होगा, चेयर होगा। राइट? तो बेसिकली ये वो रिलेशनशिप दिखाता है जहां पे रूम के पास सोफा, बेड और चेयर तो है। जाके हम हैज़ अ रिलेशनशिप कह सकते हैं कि रूम हैज़ अ सोफा। रूम हैज़ अ बेड, रूम हैज़ अ चेयर। बट अगर आप ध्यान से सोचो तो यह जो सोफा, बेड और चेयर है ना यह एक रूम के अंदर कंटेनर के अंदर होते हैं। राइट? तो इसको हम एक एग्रीगेशन रिलेशनशिप बोलते हैं। ये स्ट्रंगर रिलेशनशिप है एक सिंपल एसोसिएशन से। बट स्टिल वीकर है जो थर्ड टाइप का रिलेशनशिप है जिसे हम प्रॉपर कंपोज़िशन बोलते हैं। ठीक है? अब ये स्ट्रॉन्गर और वीकर क्या है? ये देखो ऐसा है कि हम इस सेंस में इसको स्ट्रॉन् और वीकर बोलते हैं कि देखो सिंपल एसोसिएशन सबसे वीक रिलेशनशिप था। क्योंकि इसमें जो दो ऑब्जेक्ट्स थे ना वो बस एक किसी एक छोटे से लिंक से रिलेटेड थे। जैसे अर्जुन एक घर में रहता है तो अर्जुन है लिव्स इन अ हाउस या अर्जुन हैज़ अ हाउस वो एक सिंपल एसोसिएशन हो गया। एग्रीगेशन में हमने क्या कहा? इनका जो लिंक है वो और कॉम्प्लेक्स हो गया कि एक एग्रीगेटर ऑब्जेक्ट है। एक बेसिकली पेरेंट ऑब्जेक्ट है जिसके अंदर बाकी छोटे-छोटे ऑब्जेक्ट्स रहते हैं। ठीक है? जैसे कि रूम है जिसके अंदर सोफा, बेड और चेयर होते हैं। ठीक है? इनके इनको हम ड्रॉ कैसे करते हैं? बेसिकली हम एरो ऐसे रिप्रेजेंट नहीं करते। वो कैसे रिप्रेजेंट करते हैं? वो मैं अभी बनाता हूं। पहले आप ये समझ लो कि रूम में एक कंटेनर हो गया जिसके अंदर सोफा, बेड और चेयर एक्सिस्ट करता है। तो ये एक एग्रीगेटर रिलेशनशिप है। तो इससे थोड़ा सा स्ट्रांग हो गया। ठीक है? अब एक बार देख लेते हैं इसको हम रिप्रेजेंट कैसे करते हैं। देखो एग्रीगेटर रिलेशनशिप को रिप्रेजेंट करने के लिए हम डायमंड ऑपरेटर यूज़ करते हैं। नॉट ऑपरेटर। डायमंड रिप्रेजेंटेशन यूज़ करते हैं। कुछ ऐसे। ठीक है? तो हम सबसे पहले एक सिंपल लाइन खींचते हैं और एक आगे एरो की जगह एक डायमंड बना देते हैं। अब इसमें हम जो डायमंड बनाते हैं ना वो इस तरह बनाते हैं कि जैसे अगर हम कहते हैं रूम हैज़ अ सोफा तो हम रूम से सोफा की तरफ एक एरो बनाते। पर इस केस में हम क्या करते हैं? इस केस में हम उल्टा करते हैं। हम सोफा से लेके डायमंड बनाते हैं रूम की तरफ। कि सोफा इज अ पार्ट ऑफ रूम। ऐसे ही हम बनाते हैं बेड इज अ पार्ट ऑफ रूम। ऐसे ही हम बनाते हैं चेयर इज अ पार्ट ऑफ रूम। तो इससे हम रिप्रेजेंट करते हैं सोफा, बेड और चेयर को एक रूम से एसोसिएट करके। और दिस इज कॉल्ड एज एग्रीगेशन रिलेशनशिप। आप समझ ही गए होंगे जिसमें सोफा, बेड और चेयर एक रूम का पार्ट होते हैं। अच्छा इसमें एक मेन पॉइंट अगर आप समझ गए तो आप कंपोज़िशन को बहुत इज़ली समझ पाओगे। मेन पॉइंट ये है। मेन पॉइंट ये है कि सोफा, बेड और चेयर रूम का पार्ट तो है पर ये तीनों इंडिविजुअली एग्ज़िस्ट कर सकते हैं। मतलब एक चेयर क्लास इंडिविजुअली या एक चेयर ऑब्जेक्ट इंडिविजुअली एक्सिस्ट कर सकता है रूम से। वैसे एक बेड भी इंडिविजुअली एक्सिस्ट कर सकता है रूम से। ठीक है? आप कहोगे ऑब्वियसली। राइट? अब अगर आप ये समझ गए तो आप कंपोज़िशन समझ जाओगे जो थर्ड टाइप का रिलेशनशिप है। ठीक है? तो अब देखते हैं कंपोज़िशन अब कॉमोजिशन कहता है एक तो फर्स्ट ऑफ ऑल ये स्ट्रांगेस्ट फॉर्म ऑफ रिलेशन है किसी भी दो ऑब्जेक्ट के बीच में। ठीक है? स्ट्रांगेस्ट क्यों कह रहा हूं मैं? आपको अभी इस एग्जांपल से समझ आ जाएगा। तो हमने ऊपर वाले एग्जांपल में एक रूम लिया था जिसमें एक सोफा, बेड और चेयर थी। इस एग्जांपल में काम करते हैं। सिर्फ एक चेयर लेते हैं हम। लेट्स से एक ऑब्जेक्ट है चेयर। ठीक है? उसको हम इस क्लास से रिप्रेजेंट करते हैं चेयर। अब चेयर के अंदर कौन-कौन से पार्ट हो सकते हैं? देखो चेयर के अंदर उसके आर्म्स हो सकते हैं। ठीक है? चेयर के अंदर उसकी सीट हो सकती है। ठीक है? चेयर के अंदर और क्या हो सकता है? लेट्स से वो व्हील वाली चेयर है। तो चेयर के अंदर उसके व्हील्स हो सकते हैं। ठीक है? अब ध्यान से सोचो। ये जो चेयर के आर्म्स हैं, चेयर की सीट है और चेयर के व्हील हैं ये बिना चेयर के एक्सिज़िस्ट करे तो एक्सिज़िस्ट ही नहीं कर सकते ना। राइट? तो अगर ये इंडिपेंड बेसिकली इसका मतलब है ये इंडिपेंडेंटली एग्ज़िस्ट नहीं कर सकते। तो व्हील्स, आर्म्स, सीड्स और भी बहुत सारी मिलके मिल चीजें मिला के एक चेयर बनती हैं। तो बेसिकली हम ऐसा कहते हैं कि हमारे पास ये जो ऑब्जेक्ट है चेयर लेट्स से ये एक चेयर है। तो ये कंपोज़िशन से बना हुआ है। मतलब अलग-अलग ऑब्जेक्ट से मिलके बना हुआ है। और वो अलग-अलग ऑब्जेक्ट्स क्या है? उसके व्हील्स, उसके आर्म्स और उसके सीट। मतलब अगर मैं चेयर को तोड़ूं तो उसका कुछ पार्ट तो चेयर का व्हील होगा। कुछ चेयर का पार्ट उसका सीट होगा। और कुछ चेयर का पार्ट उसका आर्म्स होंगे। और भी चेयर के बहुत सारे पार्ट्स होंगे जिससे मिलाकर के चेयर बनी होगी। पर ये जो इंडिविजुअल पार्ट्स हैं जैसे उसका व्हील हो गया, उसके सीट हो गए, उसके आर्म्स हो गए। ये इंडिविजुअली एक्सिस्ट नहीं कर सकते। है ना? रियल लाइफ की बात करें तो। तो इसको हम बोलते हैं कंपोज़िशन रिलेशनशिप। इसको रिप्रेजेंट करने का तरीका ऑलमोस्ट सिमिलर होता है। जैसे हम एग्रीगेशन की तरफ करते हैं कि हम एक डायमंड बनाते हैं। पर इसमें हम ये जो डायमंड बनाते हैं इसको फिल डायमंड्स बनाते हैं। तो हम बेसिकली इसको कलर कर देते हैं अंदर से पूरा फिल कर देते हैं। और ये बनाता है हमारा कंपोजिशन रिलेशनशिप। तो आओ इसमें एक बार इसको फटाफट से यहां बना लेते हैं। तो लेट्स से हमने इसको भी फिल कर दिया। ऐसे हमने इन दोनों को फिल कर दिया। कुछ इस तरह। और हमने कहा चेयर कंपोजशन से बनी हुई है व्हील्स, आर्म्स और सीट के। ठीक है? और देखो आप यहां पे भी हैज़ अ रिलेशनशिप लगा सकते हो। ये भी ऑब्वियसली हैज़ अ रिलेशनशिप को ही फॉलो करती है। आप बोल सकते हो चेयर हैज़ व्हील्स, चेयर हैज़ आर्म्स, चेयर हैज़ अ सीट। राइट? तो हैज़ अ रिलेशनशिप यहां भी फॉलो हो रहा है। और ये तीनों मिलाकर के चाहे आपका वो सिंपल एसोसिएशन हो, एग्रीगेशन हो या कंपोज़िशन हो। तीनों मिलाकर के एक कंपोज़शन ही जाने जाते हैं नॉर्मल प्रोग्रामिंग लैंग्वेज में। अब देखते हैं जब आप इसको यूएमएल डायग्राम में एक्सप्लेन कर सकते हो कोड में हम इसको कैसे लिखते हैं? देखो बहुत सिंपल है। ठीक है? जैसे हमने क्लास ए क्लास बी का एग्जांपल लिया था इन्हहेरिटेंस में। सेम तरीके से चलते हैं। हम एक सबसे पहले एक क्लास बनाते हैं क्लास ए। ठीक है? लेट्स से उसमें एक मेथड है मेथड वन। अब वैसे ही हम एक नया क्लास बना लेते हैं। क्लास बी अब जरा ध्यान से सोचो। यह जो आपने क्लास B बनाया है, यह जो मैं कह रहा हूं यह कंपोजिशन रिलेशनशिप है A के साथ। अब वो कोई भी कंपोज़िशन हो सकता है। सिंपल, एग्रीगेशन या कंपोज़िशन। ठीक है? बस मैं ये कह रहा हूं ये कंपोज़िशन रिलेशनशिप में है। तो मैं उसको कैसे रिप्रेजेंट करूंगा? मैं उसको इनहेरिटेंस की तरह ये तो नहीं कहूंगा वो इनहेरिट करती है। राइट? क्योंकि वो इन्हहेरिट नहीं कर रही है। जैसे इसमें ऊपर कहीं भी मैं ये नहीं कह सकता था कि व्हील इज़ अ चेयर। नहीं वो इज़ अ रिलेशनशिप नहीं है। वो हैज़ अ रिलेशनशिप है। व्हील हैज़ अ चेयर। ठीक है? ठीक है सॉरी चेयर हैज़ अ व्हील सॉरी वैसे ही मैं कह सकता था रूम हैज़ अ सोफा रूम नॉट रूम इज़ अ सोफा कभी नहीं कह सकता था वैसे ही मैं ऊपर हर जगह अर्जुन हैज़ अर्जुन लिव्स इन अ हाउस या अर्जुन हैज़ अ हाउस कह सकता था अर्जुन इज़ नॉट अ हाउस राइट अर्जुन इज़ अ हाउस नहीं हो सकता कभी भी अर्जुन हैज़ अ हाउस हो सकता है तो ये रिलेशनशिप थे इज़ अ और हैज़ अ वाले तो मैं इसको इज़ अ की तरह रिप्रेजेंट तो नहीं कर सकता मैं ये नहीं कह सकता कि बी जो है ए का चाइल्ड है मैं ये करता हूं कि मैं ए मैंने क्लास बी के अंदर ए का एक रेफरेंस बना देता हूं तो मैं a स्टार a यहां पे बना देता हूं एक। ठीक है? अब मैं क्या करूंगा? B के लेट से कंस्ट्रक्टर में इसको डिफाइन कर लूंगा। A = न्यू A ऐसे B के कंस्ट्रक्टर मैं इसको डिफाइन कर सकता हूं। और लेट्स से यहां पे हमारे पास एक मेथड है मेथड टू। जैसे कि हमने उस एग्जांपल में लिया था। तो देखो अब हमने क्या किया? सबसे पहले तो हमने क्लास बनाई A, क्लास बनाई A और हमने क्लास बनाई B। क्लास B के अंदर हमने एक A का रेफरेंस स्टोर करा लिया A और उसको कंस्ट्रक्टर में इनिशिएट करवा दिया। इन इनिशियलाइज करवा दिया। और उसमें भी एक मेथड है मेथड वन A के अंदर एक मेथड है मेथड टू B के अंदर। ठीक है? अब लेट्स सपोज़ मैं मेन फंक्शन के अंदर ये हमारा मान लो मेन क्लास है। मतलब मेन फंक्शन है। उसके अंदर मैं अगर एक B का ऑब्जेक्ट बनाता हूं तो मैं ऐसे लिखूंगा B स्टारB = न्यू B है ना? अब मान लो मुझे बी में मेथड टू कॉल कराना होता। बहुत सिंपल होता। मैंने सीधा लिखता बी एरो मेथड टू। अब अगर मुझे बी में मेथड वन कॉल कराना पड़ता तो मैं सीधा बी एरो मेथड वन नहीं लिख सकता था। पहले मैं क्या करता? बी एरो ए को x ए को निकाल के लाता और ए एरो मेथड वन लिखता। ठीक है? तो बेसिकली मैंने क्या कहा? बी के पास ए है। और ए को पता है मेथड वन को कैसे एग्जीक्यूट करता है। क्योंकि ए जो है वो ए का ऑब्जेक्ट है। समझ रहे हो? स्मॉल ए बिग ए का ऑब्जेक्ट है। तो मैं इस तरह लिखता मेथड वन को एग्जीक्यूट कराने के लिए। और ये होता है आपका कॉम्पोज़शन। अब हो सकता है आपने आज से पहले ज्यादा कंपोज़िशन रिलेशनशिप को यूज़ ही ना किया हो। डीएसए में हो गया या फिर शायद अभी तक जितनी भी आपने कोडिंग करी आपने इन्हहेरिटेंस को ज्यादा यूज़ किया हो और कंपोज़िशन को बहुत कम यूज़ किया हो और हो सकता है कभी यूज़ ही ना किया हो। ठीक है? पर आपको मैं ये बता सकता हूं एलएलडी में कंपोजिशन बहुत इंपॉर्टेंट रोल प्ले करता है। पूरी की पूरी एलएलडी में कंपोजिशन बहुत ज्यादा यूज़ होने वाला एक रिलेशनशिप है जो दो ऑब्जेक्ट्स के बीच में हो सकता है। ठीक है? और मैं इसको इस तरह बोलूंगा कि इन्हहेरिटेंस से भी ज्यादा जब आप एलएलडी के डायग्राम्स बनाते हो या एलएलडी का कोड लिखते हो उसमें आप कंपोज़िशन यूज़ करते हो। हो सकता है आपको ये बहुत हैरानी वाली बात लगी हो। पर अब जब आप रियल लाइफ एग्जांपल देखोगे जब हम एग्जांपल्स करेंगे तो आपको पता लगेगा। कंपोजशन इन्हहेरिटेंस से भी ज्यादा यूज़ होता है एलएलडी में। इसको एक बार आप ध्यान से समझ लो कि इसको कैसे बनाते हैं और यह क्या रिलेशनशिप दिखाता है। मैंने आपको पूरा एक्सप्लेन किया कि कंपोज़िशन एक हैज़ अ रिलेशनशिप होता है और इन्हहेरिटेंस एक इज़ अ रिलेशनशिप होता है। जैसे कि हमने ऊपर कहा कि हमने तीन तरह के कंपोज़िशन देखे। हमने कहा एक तो सिंपल एसोसिएशन है, एक एग्रीगेशन है और तीसरे को हम कंपोज़िशन ही बोल देते हैं। पर ये तीनों मिलाकर के रिप्रेजेंट करने का एक ही तरीका होता है जो कि है ये वाला तरीका। तो बेसिकली प्रोग्रामिंग में तो आप उसको ऐसे ही रिप्रेजेंट करते हो कि आप एक क्लास B के अंदर दूसरी क्लास A का रेफरेंस पास कर देते हो और जब आपको फंक्शन कॉल करना पड़ता है तो आप इस तरह कॉल करते हो। लेकिन बस जब आप बात कर रहे होते हो, जब आप रियल लाइफ सिनेरियो को डिपेक्ट कर रहे होते हो तो आप बोलते हो कि ये तीन अलग-अलग चीज़ हैं। एक सिंपल है जिन दो ऑब्जेक्ट्स के बीच में कि मैं कहता हूं अर्जुन ओन्स अ हाउस या लिव्स इन अ हाउस या हैज़ अ हाउस। दूसरा है एग्रीगेशन जिसमें मैं कहता हूं कि एक कंटेनर ऑब्जेक्ट है। इसके अंदर मल्टीपल अदर-अदर ऑब्जेक्ट्स जुड़े ऑब्जेक्ट्स होते हैं। एग्जांपल रूम के अंदर चेयर हो सकती है, सोफा हो सकता है, बेड हो सकता है। पर ये तीनों ऑब्जेक्ट चेयर, सोफा और बेड इंडिपेंडेंटली एक्सिस्ट कर सकते हैं रूम के अलावा। पर तीसरा तरह का सबसे स्ट्रांगेस्ट रिलेशनशिप मैंने क्या बोला? कंपोज़िशन। जिसमें जैसे एक चेयर है उसके अलग-अलग कॉम्पोज़शन है। उसकी सीट, उसका लेट्स से व्हील्स और उसका आर्म रेस्ट। और ये तीनों इंडिविजुअली एग्ज़िस्ट भी नहीं कर सकते। ये सब मिलाकर के ही एक चेयर बनती है और इसको हम कंपोजिशन रिलेशनशिप बोलते हैं। सिंपल समझ आ गया होगा। तो यही है पूरा का पूरा इन्हहेरिटेंस पूरा का पूरा कंपोजिशन और उसको मैंने डायग्रामेटिकली रिप्रेजेंट करने का भी तरीका बता दिया कि हम कंपोज़िशन को ऐसे रिप्रेजेंट करते हैं। एग्रीगेशन को हम ऐसे रिप्रेजेंट करते हैं और सिंपल एसोसिएशन को हम ऐसे रिप्रेजेंट करते हैं एक सिंपल एरो से। और इन्हेरिटेंस को रिप्रेजेंट करने के लिए हम क्या करते हैं? इन्हेरिटेंस का हमने देखा था क्या? ओके। हां, इन्हहेरिटेंस को हम इस एरो से रिप्रेजेंट करते हैं। तो इसका भी अगर हम एक नॉर्मल सा एक वो बना लेते क्या कहते हैं? यू यूएमएल डायग्राम बना लेते हैं। तो हम ऐसे ही बनाते हैं। लेट्स से हम यहीं पे एक एनिमल क्लास बनाते। ठीक है? और हम यहां पे एक काऊ बनाते और हम कहते काऊ इज़ एनिमल। ठीक है? तो, हम सिंपल ऐसे रिप्रेजेंट कर लेते हैं कि काऊ इज़ एनिमल। ये एक इज़ अ रिलेशनशिप हो गया या फिर एक इन्हहेरिटेंस रिलेशनशिप हो गया। तो इस सॉरी हम इस एरो को बंद करते हैं। सॉरी ये बहुतेंट है। हम इस एरो को बंद करते और हम कहते कि कााऊ इज़ एनिमल। तो ये जो है बंद एरो इन्हहेरिटेंस दिखाता है। ये जो ओपन एरो है ये सिंपल एसोसिएशन दिखाता है। डायमंड एग्रीगेशन और क्लोज डायमंड कंपोज़शन दिखाता है। तो दैट्स इट फॉर ऑल द यूएमएल डायग्राम्स। नॉट ऑल द यूएमएल डायग्राम सॉरी दैट्स इट फॉर द क्लास डायग्राम। ये पूरा का पूरा क्लास डायग्राम हम ऐसे रिप्रेजेंट करते हैं। अब आपको मैं एक छोटी सी एक्सरसाइज देना चाहूंगा। मैं चाहूंगा आप उसे प्रैक्टिस करो। उससे आपका क्लास डायग्राम ज्यादा क्लियर होगा। तो हमने लास्ट वीडियो में एक कार ऑब्जेक्ट की बात की थी। ठीक है? तो मैं एक सिनेरियो डिस्कस कर रहा हूं आपके साथ और मैं चाहूंगा आप उस सिनेरियो का एक क्लास डायग्राम बना के देखो। ठीक है? आप एक कार लो। उसमें अपने फेवरेट कुछ तीन-चार कररेक्टर्स ले लो। दो तीन-चार बिहेवियर्स ले लो। और मैं कह रहा हूं हमारे पास दो तरह की गाड़ी हो सकती है। एक मैनुअल कार हो सकती है। एक इलेक्ट्रिक कार हो सकती है। तो अब आप देखो ये जो मैनुअल कार और इलेक्ट्रिक कार होगी ये इन्हहेरिटेंस रिलेशनशिप से ड्रॉ करोगे आप या फिर कंपोज़िशन रिलेशनशिप से ड्रॉ करोगे। और अगर कंपोज़िशन से करोगे तो कौन सा कंपोज़िशन वो आप खुद से सोचो। उसके अलावा मैं बोलता हूं मैनुअल कार के अंदर एक अ फंक्शन है जो कि है लेट्स से चेंज गियर जो सी जो कि सिर्फ इसमें हो सकता है क्योंकि इलेक्ट्रिक कार में हमारी इलेक्ट्रिक से चलती है तो उसमें गियर सिस्टम नहीं होता पर उसमें एक नया एक अलग फंक्शन हो सकता है वो हो सकता है चार्ज बैटरी ये सब हमने देखा ही था ऑलरेडी ऊप्स में बस मैं चाहूंगा आप इस पूरे सिनेरियो का एक umml डायग्राम ड्रॉ करो ठीक है क्लास डायग्राम ड्रॉ करो कि हमारे पास एक कार है मैनुअल का इलेक्ट्रिक कार और उन दोनों में एक-एक फंक्शन है बस दैट्स इट अच्छा सीक्वेंस डायग्राम पे चलने से पहले मैं एक लास्ट कंक्लूजन ड्रॉ कर रहा हूं क्लास डायग्राम का। देखो बहुत बार क्या होगा ना जब आप कोड लिख रहेगे या एलएलडी के लिए क्लास डायग्राम्स बना रहेगे तो आप ना हमेशा इन्हहेरिटेंस में तो कभी कंफ्यूज नहीं होगे। वो तो बहुत सिंपल है। पर ये जो तीन तरह के कंपोज़िशंस हो सकते हैं। सिंपल, एग्रीगेशन और कंपोज़िशन। इसमें ना आप कभी कबभार कंफ्यूज हो जाओगे कि ये जो दो ऑब्जेक्ट के बीच में रिलेशनशिप है वो एक सिंपल एसोसिएशन है या कंपोज़िशन है या एग्रीगेशन है। कभी कबभार तो बहुत क्लियर समझ आ जाएगा। जैसे हमने जो एग्जांपल लिया इसमें एकदम क्रिस्टल क्लियर था। पर जैसे अभी हम आगे एग्जांपल करेंगे ना कभी कबभार बहुत ही थिन लाइन होगी। कभी तुम्हें लगेगा ये कंपोज़िशन भी हो सकता है और ये एग्रीगेशन भी हो सकता है। तो उस पॉइंट ऑफ टाइम में क्या होता है ना ये सब्जेक्टिव सब्जेक्टिव मैटर होता है। ठीक है? ये आप पे डिपेंड करता है कि आप अपने डायग्राम को या अपनी पूरी की पूरी एप्लीकेशन को किस तरह बनाने वाले हो। इसमें कोई सही और गलत आंसर नहीं होता। ठीक है? तो इसका एक बहुत छोटा सा एग्जांपल लेते हैं। लेट्स से आप Zomato का या SWGI का क्लोन बनाते हो। ठीक है? और मैं कहता हूं कि रेस्टोरेंट एक ऑब्जेक्ट होता है। ठीक है? SGI Zomato जहां पे आप खाना ऑर्डर करते हो तो रेस्टोरेंट एक ऑब्जेक्ट हो सकता है। अब रेस्टोरेंट के अंदर ना मेन्यू होता है। ठीक है? जहां से आप मेन्यू आइटम्स होंगे। हर रेस्टोरेंट में अपने एक मेन्यू आइटम्स होंगे। अब आप सोचो ये जो एक मेन्यू का ऑर्डर ऑब्जेक्ट होगा और एक रेस्टोरेंट ऑब्जेक्ट होगा। इन दोनों के बीच में रिलेशनशिप कैसे होगा? अब इन दोनों के बीच में अगर आप सोचो कि मेन्यू क्या इंडिपेंडेंटली एक्सिस्ट कर सकता है? अगर आपको लगता है कर सकता है तो वो एक सिंपल एग्रीगेशन रिलेशनशिप भी हो सकता है। लेकिन अगर आपको लगता है नहीं मेन्यू बिना रेस्टोरेंट के एग्िस्ट ही नहीं कर सकता तो आप उसको कंपोज़िशन में बना दोगे जो कि है स्ट्रांगेस्ट फॉर्म ऑफ राइट हमने पढ़ा था स्ट्र्रांगेस्ट फॉर्म ऑफ़ एसोसिएशन कंपोज़शन डॉ कर दोगे। तो ये कुछ थिन लाइंस होती हैं जहां पे आपके सब्जेक्टिविटी पे डिपेंड करता है आप उस एप्लीकेशन को कैसे डिज़ाइन करने वाले हो। दैट्स सिंपल। ठीक है? वो सिचुएशन टू सिचुएशन डिपेंड करता रहेगा। और जब हम कोड करेंगे हमें समझ आएगा। हम देखेंगे उसको। चलो ये सब था क्लास डायग्राम के बारे में। अब हम अपना सेकंड यूएमएल डायग्राम डिस्कस करने वाले हैं जिसको हम बोलते हैं सीक्वेंस डायग्राम। चलो करें स्टार्ट। देखो सीक्वेंस डायग्राम ना मैंने आपको जैसे पहले ही बताया था वीडियो के स्टार्टिंग में। बहुत सारे एलएलडी इंटरव्यूज में आपसे नहीं पूछा जाएगा। पर कुछ ऐसे स्पेसिफिक यूज़ केस होंगे जहां पे ये बहुत काम आएगा। ठीक है? तो उन यूज़ केस के लिए हमें ये सीक्वेंस डायग्राम आना चाहिए। तो पहले हम देख लेते हैं सीक्वेंस डायग्राम में सारे कौन-कौन से बेसिकली फ्लो होते हैं। मतलब क्या-क्या हम डायग्राम में रिप्रेजेंट करते हैं। ठीक है? तो सीक्वेंस डायग्राम में हम देखो ये रिप्रेजेंट करते हैं कि हमारे पास दो ऑब्जेक्ट हैं। एक ऑब्जेक्ट है A, एक ऑब्जेक्ट है बी। अब क्योंकि सीक्वेंस डायग्राम एक तरह का बिहेवियरल डायग्राम है। तो ये ना दो क्लासेस के बीच में उनके इंटरेक्शंस को बताता है। फॉर एग्जांपल एक ऑब्जेक्ट है एक ऑब्जेक्ट है बी। मैं बता रहा हूं कि जो A है वो B के साथ कैसे इंटैक्ट करेगा? B जो है वो A के साथ कैसे इंटरेक्ट करेगा? और इनके बीच में इंटरेक्शन कैसे होगा? ठीक है? कब-कब होगा? बेसिकली ये सब एक सीक्वेंस डायग्राम आपको बताता है। ठीक है? तो इनके बीच में आपको कम्युनिकेशन बताता है या फिर उनके बीच में आपको इंटरेक्शन बताता है। तो दिस इज़ कॉल्ड एज अ सीक्वेंस डायग्राम। ठीक है? अब उसके अलग-अलग कॉम्पोनेंट्स को देख लेते हैं सीक्वेंस डायग्राम में। देखो सबसे पहले सीक्वेंस डायग्राम में हमारे पास आता है कि हम ऑब्जेक्ट को कैसे रिप्रेजेंट करते हैं। देखो सीक्वेंस डायग्राम में ना हम ऑब्जेक्ट को रिप्रेजेंट करते हैं ऐसे। बस एक A ऑब्जेक्ट है। ऐसे एक B ऑब्जेक्ट है। ऐसे ही एक C ऑब्जेक्ट है। ऐसे आप D भी बना सकते हो। और भी जितने भी ऑब्जेक्ट। सो इसमें आप क्लास डायग्राम की तरह पूरा का पूरा क्लास को रिप्रेजेंट नहीं करते हो कि उसमें अलग बनाओगे, वेरिएबल्स अलग बनाओगे, क्लास का नाम ऐसे। क्योंकि इसमें क्लास का स्ट्रक्चर मैटर नहीं करता। वो तो आपने बना दिया ऑब्वियसली क्लास डायग्राम में। पर इसमें आप मान के चल रहे हो एक क्लास है ए जिसको आप ऐसे रिप्रेजेंट करते हो। उसके अंदर क्या है? मैटर नहीं करता। क्योंकि आपको क्लास का स्ट्रक्चर नहीं बताना। आपको बताना है कि दो क्लासेस इंटरेक्ट कैसे कर रही हैं। ठीक है? तो पहली चीज ये हो गई कि आप क्लास को रिप्रेजेंट कैसे करते हो। सेकंड चीज। अब इसमें कुछ टर्म्स आते हैं। ठीक है? सबसे पहला टर्म है लाइफ लाइन। ठीक है? लाइफ लाइन क्या होती है? तो लाइफ लाइन बताती है कि कोई भी एक ऑब्जेक्ट या कोई भी एक एंटिटी या कोई भी एक कॉम्पोनेंट कब-कब एग्ज़िस्ट करेगा हमारे पूरे के पूरे एप्लीकेशन में। तो अब बेसिकली लेट्स सपोज़ हम दो ऑब्जेक्ट लेते हैं A और दो ऑब्जेक्ट लेते हैं B। मैं कह रहा हूं यहां तक हमारी एप्लीकेशन एग्ज़िस्ट करती है। एप्लीकेशन लाइव होगी, रन करेगी। तो ये जो A ऑब्जेक्ट है इसकी लाइफ लाइन हम ऐसे रिप्रेजेंट करते हैं। ठीक है? डैश लाइन से और सेम हम B की लाइफ लाइन ऐसे रिप्रेजेंट करते हैं। अब ये बताता है कि जो A और B जो हमारे दो ऑब्जेक्ट हैं ये थ्रूउ दी एप्लीकेशन इनकी लाइफ लाइन रहने वाली है। मतलब ये स्टार्टिंग में ही बन जाएंगे और जब तक रहेंगे जब तक एप्लीकेशन एग्ज़िस्ट करेगी। पर लेट्स सपोज हमारे पास एक तीसरा ऑब्जेक्ट है C जिसकी लाइफ लाइन कहीं यहां से स्टार्ट होती है बीच में से। तो ये ये बताएगा कि एक ऑब्जेक्ट जो C है वो कहीं यहां बीच में से स्टार्ट होगा। राइट? ना कि एप्लीकेशन के स्टार्टिंग से स्टार्ट होगा। तो ये लाइफ लाइन होती है। ठीक है? इसके अलावा अभी ये सारे टर्म्स जब हम एक साथ इंटीग्रेट करेंगे एक एग्जांपल में तब आपको ज्यादा बेटर समझ आएगा। अभी आप समझ लो। एक होता है एक्टिवेशन बार। ठीक है? एक्टिवेशन बार को ड्रॉ करने का हम ऐसे ड्रॉ करते हैं। मैं पहले दिखा देता हूं कैसे। यह एक्टिवेशन बार है। लेट्स से इसका एक्टिवेशन बार यहां से यहां तक है और इसका एक्टिवेशन बार यहां से यहां तक है। अब एक्टिवेशन बार ये कहता है कि ये लाइफ लाइन तो बता रही थी वो एप्ली वो ऑब्जेक्ट कब तक एग्ज़िस्ट करेगा एप्लीकेशन के अंदर। पर एक्टिवेशन बार बताता है कि वो ऑब्जेक्ट कब तक एक्टिव रहेगा। तो ये एक्चुअली ये ऑब्जेक्ट एक्टिव अब हुआ है और ये ऑब्जेक्ट यहां से यहां तक एक्टिव है और ये ऑब्जेक्ट बस यहां से यहां तक एक्टिव है और एक्टिव होने का मतलब ये होता है कि अब वो ऑब्जेक्ट एक्चुअली एक दूसरे ऑब्जेक्ट को मैसेज भेज सकता है या दूसरे ऑब्जेक्ट से मैसेज रिसीव कर सकता है। पर जब कोई ऑब्जेक्ट इनक्टिव है यानी कि जो इस ऑब्जेक्ट की ये वाली और ये वाली स्टेज है जैसे ये वाली और ये वाली स्टेज है। इसमें ऑब्जेक्ट इनएक्टिव है और इसको जब भी आप एक मैसेज भेजोगे तो या तो ये रिसीव ही नहीं कर पाएगा और ये खुद से कोई मैसेज भेज नहीं पाएगा। तो ये एक्टिवेशन बाहर होता है। ठीक है? तो ये भी समझ गए? चलो तो हमने देख लिया सॉरी कलर चेंज कर लेते हैं। फोर्थ तो हमने देखा लाइफ लाइन क्या होती है? एक्टिवेशन बार क्या होता है? और हमने ऊपर देख लिया ऑब्जेक्ट को ऐसे रिप्रेजेंट करते हैं। अब हम देखते हैं कि हम मैसेजेस को कैसे सेंड करते हैं। ठीक है? तो सबसे पहले मैसेजेस समझने से पहले हम समझ लेते हैं हमारे पास दो तरह के मैसेजेस होते हैं। ठीक है? अगर आपने थोड़ा बहुत अ नेटवर्किंग पढ़ी होगी तो आपको पता होगा हमारे पास एसिंक्रोनस मैसेज होता है और एक सिंक्रोनस मैसेज होता है। अगर नहीं पता कोई बात नहीं मैं बता देता हूं। सिंक्रोनस मैसेज वो मैसेज होता है जिसमें आप किसी ऑब्जेक्ट को मैसेज भेजते हो और फिर उसके रिस्पांस का वेट करते हो। ठीक है? जब तक उसका रिस्पांस नहीं आता आप दूसरा मैसेज नहीं भेजते। लेकिन एसिंक्रोनस में आप क्या करते हो? आप फटाफट मैसेज भेजते रहते हो। एक के बाद एक। तो आपने एक मैसेज भेजा, दूसरा भेजा, तीसरा भेजा और आप कोई भी रिस्पांस का वेट नहीं करते हो। ठीक है? तो दो तरह के मैसेज होते हैं सिंक्रोनस और एसिंक्रोनस। तो अब हम देखते हैं इन दोनों मैसेजेस को हम रिप्रेजेंट कैसे करते हैं। तो यही मैंने कहा लेट्स से हमारे पास दो ऑब्जेक्ट हैं A और B। ठीक है? दोनों की एक लाइफ लाइन बना लेते हैं। और दोनों का एक एक्टिवेशन बार बना लेते हैं। लेट्स से ये दोनों का एक्टिवेशन बार बराबर है। ठीक है? तो मैंने कहा हम एक सिंपल मैसेज को ड्रॉ करने के लिए सिंपल एक सीधी लाइन खींचते हैं और एरो को बंद कर देते हैं और ये हम ऊपर लिख देते हैं मैसेज तो ये हमारा एक सिंपल मैसेज हो जाता है। ठीक है? अब ये जो सिंपल मैसेज था इसको हम बोलते हैं सिंक्रोनस मैसेज। राइट? क्योंकि हमने जो मैसेज भेजा हम इसके रिस्पॉन्स का वेट करेंगे दूसरा मैसेज आने के लिए। और ये जो हमारा रिस्पांस आता है इसे हम ड्रॉ करते हैं डॉटेड लाइन से ऐसे और ये होता है रिस्पांस। ठीक है? तो ये हमारा एक मैसेज गया और उसका एक रिस्पांस आया। मैसेज गया रिस्पांस आया। तो उसको ड्रॉ करने के लिए हमने क्या किया? हमने क्लोज्ड एरो ड्रॉ कर दिया सिंपल मैसेज के लिए और उसके रिस्पांस के लिए। सिंपल। और जो हमारा ये एसिंक्रोनस मैसेज होता है। ये हमारा था सिंक्रोनस। ये हमने बनाया भी था। और अब हम बनाते हैं एसिंक्रोनस। इस केस में हम क्या करेंगे? सेम हम दो ऑब्जेक्ट लेते हैं। A B उनकी हम लेट्स से एक अगेन लाइफ लाइन बना लेते हैं और उसका हम एक एक्टिवेशन बार बना लेते हैं। इसमें क्या होगा? हम इस तरह से रिप्रेजेंट करेंगे कि सिंक्रोनस मैसेज को हमने ओपन एरो के साथ। ठीक है? और यहां पे दोबारा हम कोई मैसेज लिख देंगे। और इसमें हम रिस्पांस का वेट नहीं करते। तो हम दूसरा मैसेज भी भेज सकते हैं। हम चाहे तो तीसरा मैसेज भी भेज सकते हैं। पर ये विद इन द एक्टिवेशन बार होना चाहिए। मतलब ये एक्टिवेशन बार यहां तक होनी चाहिए तभी हम भेज पाएंगे। ठीक है? तो ये होता है एसिंक्रोनस मैसेज। तो हमने दोनों तरह के मैसेज देख लिए। हमने सबसे पहले देखा ऑब्जेक्ट्स को कैसे रिप्रेजेंट करते हैं। ठीक है? फिर हमने देखा लाइफलाइन क्या होती है? ये लाइफ लाइन होती है। बेसिकली वो कब ऑब्जेक्ट बनेगा और कब तक रहेगा। एक्टिवेशन बार क्या होती है? जैसे हमने कहा वो ऑब्जेक्ट कब तक एक्टिव होगा और एक्टिवेशन बार के अंदर होते हुए ही वो मैसेज भेज सकता है, रिसीव कर सकता है। और फाइनली हमने देखा मैसेजेस क्या होते हैं। हमने कहा दो तरह के मैसेज होते हैं। एसिंक्रोनस और सिंक्रोनस। सिंक्रोनस में हम रिस्पांस का वेट करते हैं। तो हम इस तरह ड्रॉ करते हैं विद अ क्लोज्ड एरो और उसका रिस्पांस आता है विद अ डॉटेड लाइन और एसिंक्रोनस में हम सीधा मैसेज भेजते रहते हैं और हम रिस्पांस का वेट नहीं करते और उसको रिप्रेजेंट करने के लिए हम ओपन एरो बनाते हैं। सिंपल। अब एक बस एक लास्ट चीज रह गई और उसके बाद यह पूरा डायग्राम खत्म। बहुत सिंपल है। ठीक है? दो तरह के मैसेज होते हैं। एक होता है क्रिएट मैसेज और एक होता है डिस्ट्रॉय मैसेज। ये क्या मैसेज होते हैं? देखो आपकी एप्लीकेशन जब रन हो रही होगी ना तो बहुत सारे ऐसे सिचुएशन आएंगे जब एक ऑब्जेक्ट या एक एंटिटी या एक कॉम्पोनेंट क्रिएट होगा। राइट? या फिर कोई ऑब्जेक्ट एंटिटी या कोई एक कॉम्पोनेंट डिस्ट्रॉय होगा। तो उस डिस्ट्रॉय करने के लिए या उसको क्रिएट करने के लिए जो मैसेज जाता है उसको हम क्रिएट मैसेज या डिस्ट्रॉय मैसेज बेस बोलते हैं। तो इसको रिप्रेजेंट हम देखो ऐसे करते हैं। मैं आपको डायग्रामेटिकली बताता हूं। लेट्स से हमारे पास एक ऑब्जेक्ट है A। ठीक है? ये हमने बनाई उसकी एक्टिवेशन बार सॉरी लाइफ लाइन और ये हो गया उसका एक्टिवेशन बार। अब जब ये ऑब्जेक्ट एक्टिव है, एक मैसेज भेज सकता है। तो लेट्स से ये क्रिएट मैसेज भेजता है एक ऑब्जेक्ट का तो मैं यहां ऊपर लिख लेता हूं क्रिएट। और इस मैसेज के बाद एक नया ऑब्जेक्ट लेट से B क्रिएट हो जाता है विद इट्स लाइफ लाइन। तो ये होता है क्रिएट मैसेज। अब डिस्ट्रॉय मैसेज ऑन दी अदर हैंड क्या करेगा? सेम उल्टा कर देगा कि हमारे पास एक ऑब्जेक्ट होगा ए। ठीक है? ये उसकी लाइफ लाइन होगी और ये उसका लेट्स से एक्टिवेशन बार होगा। ठीक है? अब क्या होगा कि जब ये एक ऑब्जेक्ट मैसेज भेजेगा डिस्ट्रॉय का डिस्ट्रॉय का तो हमारे पास एक ऑलरेडी एग्जिस्टिंग बी ऑब्जेक्ट लेट्स से वो पहले बना होगा जिसकी एक लाइफ लाइन चलती आ रही होगी वो यहां आके डिस्ट्रॉय हो जाएगी। तो हम इसको ऐसे रिप्रेजेंट करते हैं। तो ये हमारा डिस्ट्रॉय मैसेज हो गया। सो क्रिएट में क्या हुआ? एक नया ऑब्जेक्ट हमने क्रिएट कर लिया लाइक दिस। जब हमने उस एक्टिवेशन मैसेज को क्रिएट बेसिकली एक्टिवेशन बार में क्रिएट मैसेज भेजा और डिस्ट्रॉय में हमने क्या किया? जैसे ही हमने एक्टिवेशन बार में डिस्ट्रॉय मैसेज भेजा हमारा जो एक ऑलरेडी एकिस्टिंग ऑब्जेक्ट था उसकी लाइफलाइन खत्म हो गई। ठीक है? वहीं पे हमने उसकी लाइफ लाइन खत्म कर दी और हमने कहा ये डिस्ट्रॉय मैसेज हो गया। तो क्रिएट मैसेज डिस्ट्रॉय मैसेज। ठीक है? इसके अलावा दो तरह के मैसेज और होते हैं। आई नो थोड़ा सा शायद आपको लग रहा हो कॉम्प्लिकेटेड है या बहुत सारे टर्म्स हैं। बट एक बार अगर आपने एक बार सारे टर्म समझ लिए ना बहुत सिंपल है जब आप डायग्राम बनाते हो। और लिटरली आपकी ये बहुत हेल्प करेगा कोई स्पेसिफिक प्रॉब्लम को सॉल्व करने के लिए। तो एक बार लास्ट देख लो। एक होता है आपका लॉस्ट मैसेज। और एक होता है फाउंड मैसेज। ये भी बहुत सिंपल है। बस एक बार समझ लो। देखो लॉस्ट मैसेज होता है कि किसी ने कोई मैसेज भेजा और वो लॉस्ट हो गया। ठीक है? वो किसी तक पहुंचा ही नहीं। मतलब एक ऑब्जेक्ट ने मैसेज भेजा दूसरे ऑब्जेक्ट तक पहुंचा ही नहीं। तो इसको हम रिप्रेजेंट कैसे करते हैं? लेट्स से ये हमारा एक ए हो गया ऑब्जेक्ट। ये हमारी इसकी लाइफ लाइन हो गई और ये हमारा इसका एक्टिवेशन बार हो गया। कलर चेंज कर लेते हैं। ये हमारा इसका एक्टिवेशन बार हो गया। और ये लाइफ लाइन कंटिन्यू हो गई। ठीक है? तो अगर आप एक लॉस्ट मैसेज बनाने वाले हो। ठीक है? उसके लिए आप क्या करते हो कि लेट्स से आप ऐसे ड्रॉ करते हो। आपने एक मैसेज भेजा। और वो लॉस्ट हो गया। ठीक है? तो उसको रिप्रेजेंट करने का बस ये तरीका होता है। आप पॉइंट बना के सर्कल बना देते हो। तो वो आपका एक लॉस्ट मैसेज हो गया। अब ऐसे ही आपको एक फाउंड मैसेज अगर बनाना हो तो आप क्या करते हो? एक उसकी दोबारा से लेट्स से अभी एक ये ऑब्जेक्ट हो गया। ये उसकी एक्टिवेशन बार हो गई और ये आपका पूरा का पूरा लाइफ लाइन हो गई। अब एक मैसेज लॉस्ट कब होगा? देखो मैसेज लॉस्ट मैसेज वो होगा कि आपने एक ऑब्जेक्ट आपने एक मैसेज भेजा और वो हवा में जाकर के लॉस्ट हो गया। हवा में जाकर के लॉस्ट हो गया। मतलब अगर आप नेटवर्किंग के टर्म्स में समझो दूसरे ऑब्जेक्ट तक वो पहुंचा ही नहीं। क्यों नहीं पहुंचा होगा? हो सकता है कि यहां पे एक दूसरा ऑब्जेक्ट रहा हो बी जिसकी एक्टिवेशन बार यहां तक खत्म हो गई हो और यहां पे वो एक्टिवेटेड ही ना हो। और अगर एक्टिवेटेड नहीं होगा तो बी तक वो मैसेज पहुंचेगा ही नहीं। और हम उसको लॉस्ट मैसेज कह देंगे। तो फाउंड मैसेज ये होता है कि वो किसी सोर्स से आ रहा था। ठीक है? A तक पहुंच गया पर पता नहीं आ कहां से रहा था। ठीक है? तो इसका जो सोर्स है वो अननोन है। तो वो होता है फाउंड मैसेज। अब आप कहोगे इसका यूज़ केस क्या है? देखो इसका यूज़ केस ना बहुत अ अगेन एप्लीकेशन टू एप्लीकेशन डिपेंड करता है। लेट्स से जैसे मैंने अभी लॉस्ट मैसेज का एग्जांपल दिया कि आपके पास एक बी था एक उसका एक्टिवेशन बार खत्म हो गई थी और तब किसी ए ने उसको मैसेज भेजा। तो वो लॉस्ट मैसेज कहलाएगा जिसके ऊपर हम ऐसे लॉस्ट भी लिख देते हैं। और यहां पर हम लिख देते हैं फाउंड। ठीक है? ऐसे हम फाउंड मैसेज क्या होगा कि लेट्स से एक सोर्स था। ठीक है? जब उसने वो मैसेज दिया तब वो एक्टिवेटेड था पर फिर वो एक्टिवेट नहीं रहा। लेट्स से मैं इसको ऐसे ड्रॉ करता हूं। एक मैसेज था ए या ए तो यही है। तो इसको हम बोलते हैं बी। ठीक है? उसकी एक्टिवेशन बार पहले एक्टिवेटेड थी। लेट्स से वो यहां पे एक्टिवेटेड था। जब उसने ये मैसेज भेजा था। ठीक है? जब उसने मैसेज भेजा था और उसके बाद वो खत्म हो गया। तो अब ये फाउंड मैसेज इसलिए हुआ कि जब ए को ये मैसेज मिला बी से अब जब उसको रिस्पांस करना है तो उसे पता ही नहीं रिस्पोंस कैसे करना है क्योंकि बी अब सुनने के लिए है ही नहीं अवेलेबल ठीक है तो इसको आप ऐसे देख सकते हो कि उसके और भी बहुत सारे एग्जांपल हो सकते हैं लॉस्ट और फाउंड मैसेज आप कब बनाते हो पर आप इतना समझ लो कि ये बहुत यूज़ केस स्पेसिफिक होता है लेकिन पक्का एक बार अगर आपने सारा समझ लिया तो हम जब क्वेश्चंस करेंगे तो ये सारी चीजें यूज़ कर रहे होंगे एक ना एक बार पक्का ठीक है तो एक बार क्विक रिवाइज कर लेते हैं बस बस यही सब है। खत्म हो गया पूरा का पूरा सीक्वेंस डायग्राम। तो सीक्वेंस डायग्राम हमने देखा क्या हेल्प करता है हमारी? दो ऑब्जेक्ट्स हैं जैसे A और B उनके बीच में कम्युनिकेशन कैसे होगा? वो हमें बताता है सीक्वेंस डायग्राम। तो सबसे पहले हमने क्या कहा कि हम रिप्रेजेंट करते हैं क्लासेस कैसे होंगी? लाइफलाइन क्या होगा? एक्टिवेशन बार क्या होगा और मैसेजेस क्या होंगे। मैसेजेस में हमने देखा एसिंक्रोनस और सिंक्रोनस जो हमने बोला ही था और वो हमने रिप्रेजेंट कर लिया। उसके बाद हमने जो अलग-अलग तरह के मैसेज देखे, एक हमने देखा क्रिएट मैसेज, एक हमने देखा डिस्ट्रॉय मैसेज। ठीक है? उसके बाद हमने देखा लॉस्ट मैसेज और हमने देखा फाउंड मैसेज। ये चार तरह के और अलग-अलग तरीके के मैसेज देख लिए हमने। ठीक है? इसके बाद अब आखिरी चीज पे बात कर लेते हैं कि हमने इतना कुछ जो पढ़ा सीक्वेंस डायग्राम का हाउ टू ड्रॉ। हाउ टू ड्रॉ। अब ड्रॉ कैसे करें सीक्वेंस डायग्राम को? मतलब क्लास डायग्राम तो हमें पता था कि एज़ इट इज़ उसको उठा करके कोड लिख सकते हैं। वो तो एग्जैक्ट क्लासेस हैं और उसके बीच में उनका एसोसिएशन भी है। पर ये सीक्वेंस डायग्राम हम कैसे बनाएं? मतलब किसी एग्जांपल का हम कैसे सीक्वेंस डायग्राम बना सकते हैं? कब उसकी यूज़ पड़ेगी? तो देखो इसको ऐसे समझो। मैं अब एक यूज़ केस डिस्कस करते हैं। ठीक है? उसको लेता हूं। तो लेट्स से एक यूजर है। ठीक है? वो यूजर एटीएम पे गया। ठीक है? और वो एटीएम पे क्यों जाएगा यूजर? ऑब्वियसली पैसे निकालने के लिए। तो वो एटीएम पे जाएगा। लेट्स से वो एटीएम पे जाएगा। अपना अकाउंट नंबर लेके जाएगा और एक अमाउंट निकालने लेके जाएगा। ठीक है? उसमें आप कह सकते हो अकाउंट नंबर में वह पिनस वगैरह ये सब भी ले जाएगा। वो एटीएम में वो सब चीजें डालेगा। अब जो एटीएम है वो एक ट्रांजैक्शन बनाएगा। उस अमाउंट को वेरीफाई करेगा और लास्ट में कैश दे देगा यूजर को। यही सब होता है। राइट? जब आप एक एटीएम जाते हो, आप अपना पिन डालते हो, कार्ड डालते हो, अमाउंट डालते हो, वो आपके ट्रांजैक्शन को वेरीफाई करता है और अगर आपके अमाउंट अकाउंट में उतना पैसा है, तो आपको पैसा ला करके दे देता है। ठीक है? तो ये हमारा एक एप्लीकेशन का एक यूज़ केस है। तो अब इस यूज़ केस के लिए ना हम एक सीक्वेंस डायग्राम बनाएंगे। तो, एक बार सारे यूज़ केस को ढंग से डिस्कस कर लेते हैं। सीक्वेंस डायग्राम मैंने बना के रखा है क्योंकि वो बहुत बड़ा है। उसको हम ढंग से देखेंगे और एक एक-एक इसका इंटरेक्शन समझेंगे। तो, यूज़ केस को ऐसे समझ लेते हैं कि सबसे पहले क्या हुआ होगा? सबसे पहले हमारा जो यूजर है वो बैंक गया होगा या एटीएम गया होगा। ठीक है? सबसे पहले यूजर एटीएम गया होगा। ठीक है? फिर क्या हुआ होगा? फिर ये जो एटीएम है जब यूजर एटीएम गया होगा सॉरी जब यूजर एटीएम गया होगा तो यूजर जो है वो एटीएम गया होगा हमारा दो चीजें लेके। एक तो लेट से हम कहते हैं अकाउंट नंबर लेके और एक वो अमाउंट लेके जो उसे वहां एटीएम से निकालना है। ठीक है? मैं कहता हूं सारा सिक्योरिटी का पार्ट यहीं पर हैंडल हो जाता है। ठीक है? तो अब हम सेकंड पार्ट देखते हैं। जब वो अकाउंट नंबर और अमाउंट लेकर के एटीएम गया तो सेकंड पार्ट में क्या होता है? सेकंड पार्ट में ये जो एटीएम है ये हमारा एक ट्रांजैक्शन ऑब्जेक्ट बनाएगा। ठीक है? अब ट्रांजैक्शन क्या होता है? बेसिकली ट्रांजैक्शन हर एक बेसिकली जो भी आप एक ट्रांजैक्शन कर रहे हो उस एटीएम के साथ वो यूनिक रखने के लिए हम एक ट्रांजैक्शन ऑब्जेक्ट बनाते हैं। लेट्स से अगर आपको दोबारा कैश निकालना है तो एक दोबारा एक अलग ट्रांजैक्शन ऑब्जेक्ट बनेगा। तो एक ट्रांजैक्शन ऑब्जेक्ट बनाएगा जिसका काम होगा सबसे पहला वो वेरीफाई करेगा। लेट्स से कि आपके आपका एटीएम पिन सही है या नहीं है। ठीक है? सेकंड वेरीफाई करेगा कि आपके अकाउंट में सफिशिएंट फंड है या नहीं है। ठीक है? अगर ये सब कुछ सही है तो तीसरा वो एक कैश डिस्पेंसर नाम के ऑब्जेक्ट को बोलेगा कि भाई पैसा निकाल के दे। राइट? एटीएम से पैसा कौन निकालता है? एक अलग वो होता है लाइक अ कंटेनर होता है कैश डिस्पेंसर जहां से कैश निकलता है। तो मैं कहता हूं कैश डिस्पेंसर भी एक ऑब्जेक्ट है। जो ट्रांजैक्शन कैश डिस्पेंसर बोलेगा कि भाई पैसा निकाल के दे। और कैश डिस्पेंसर कैश दे देगा हमारे यूजर को। ठीक है? तो ये हमने एक बार दोबारा से यूज़ केस ढंग से डिस्कस कर लिया। अब किसी भी ऑब्जेक्ट सीक्वेंस डायग्राम को बनाने से पहले ये तीन चीजों का याद रखना। सबसे पहले जब भी आपको एक सीक्वेंस डायग्राम बनाना होता है तो सबसे पहले आप यूज़ केस बनाते हो जो हमने यहां बनाया कि यूज़ केस क्या होगा कि एक यूजर लिटरली एटीएम जाएगा। वहां पे अपना अकाउंट नंबर डालेगा। वो ट्रांजैक्शन बनेगी। ट्रांजैक्शन जो है उसका एटीएम पिन वगैरह अमाउंट वगैरह वेरीफाई करेगी। कैश डिस्पेंसर को बोलेगी। फिर वो कैश निकाल के देगा। ये एक यूज़ केस है। एक फ्लो है। हमने फ्लो डिस्कस कर लिया। फ्लो डिस्कस करने के बाद आप देखते हो कि कौन-कौन से ऑब्जेक्ट्स जो इनवॉल्व हैं इस पूरे फ्लो में। तो यहां पे आप ऑब्जेक्ट आइडेंटिफाई करते हो। तो देखा हमने कौन-कौन से ऑब्जेक्ट इन्वॉल्व हैं। सबसे पहले तो एक एटीएम है, यूजर है राइट? ट्रांजैक्शन है। और अकाउंट है, कैश डिस्पेंसर है। ये सब है। ठीक है? तो आपने एक बार ऑब्जेक्ट आइडेंटिफाई कर लिया। तो आपको यूज़ केस पता है, ऑब्जेक्ट्स पता है। अब आप जाकर के इनका सीक्वेंस डायग्राम बनाते हो। ठीक है? डॉ सीक्वेंस डायग्राम। अब आप सीक्वेंस डायग्राम कैसे बनाते हो? सेम जितने भी ऑब्जेक्ट्स हैं जैसे एटीएम एक ऑब्जेक्ट है उसको आप ऐसे रिप्रेजेंट करते हो और उसकी लाइफ लाइन बनाते हो। सेम यूजर एक ऑब्जेक्ट है उसको आप ऐसे रिप्रेजेंट करते हो और उसकी लाइफ लाइन बनाते हो। और ऐसे आप बाकियों की लाइफ लाइन बनाते हो। और जब वो एक्टिवेट होते हैं उनका एक्टिवेशन बार बनाते हो और फिर वो जैसे इंटैक्ट करते हैं उनके मैसेजेस बनाते हो। तो एक बार देख लेते हैं ये पूरा का पूरा सीक्वेंस डायग्राम कैसे दिखेगा। ये मैंने पहले से ही बना के रखा है। तो आप जरा इसको देखो। ये है हमारे पूरे के पूरे एटीएम का सीक्वेंस डायग्राम। ठीक है? तो आओ इसे ध्यान से समझते हैं। ठीक है? सबसे लेफ्ट साइड पे ये हमारा यूजर है। ठीक है? और ये यूजर का एक्टिवेशन बाहर है। तो आप देख सकते हो यूजर स्टार्टिंग में ही एक्टिवेट हो गया और तब तक एक्टिवेटेड रहा जब तक हमारी एप्लीकेशन रन थी। राइट? क्योंकि यूजर का तो आखिरी तक काम है। किसी भी एप्लीकेशन इस एप्लीकेशन में यूजर का तो आखिरी तक काम है क्योंकि वो ही कैश निकालेगा। ठीक है? अब देखो सारे के सारे जो ऑब्जेक्ट्स एंटिटीज हैं वो कैसे इंटरेक्ट कर रहे हैं। तो यूजर एटीएम ऑब्जेक्ट के पास गया और उसने बोला विथड्रॉ तो उसने विथड्रॉ का मैसेज भेजा अमाउंट और अकाउंट नंबर देके। ठीक है? अब एटीएम भी देखो एटीएम का भी एक्टिवेशन बार स्टार्टिंग से लेके एंड तक है क्योंकि एटीएम भी एक्टिवेट रहना चाहिए। राइट? क्योंकि सारे फंक्शन एटीएम के अंदर ही हो रहे हैं। तो उसने एटीएम को मैसेज भेजा विथड्रॉ का कि मुझे ये अमाउंट निकालना है इस अकाउंट नंबर से। तो अब एटीएम क्या करेगा? देखो एटीएम ने एक क्रिएट ऑब्जेक्ट वाला मैसेज भेजा और एक ट्रांजैक्शन क्रिएट किया। याद है? जैसे हमने ऑब्जेक्ट ऊपर डिस्कस किया था कि आप एक क्रिएट मैसेज भेज सकते हो। एक ट्रां एक नया ऑब्जेक्ट बनाने के लिए। तो यहां पे वो नया ऑब्जेक्ट क्या है? ट्रांजैक्शन। क्योंकि ट्रांजैक्शन पहले कोई एक्सिस्ट नहीं कर रही थी। यूजर ने अमाउंट डाला, अकाउंट नंबर डाला। अब एक ट्रांजैक्शन क्रिएट हुई है कि लेट्स से अब जाकर के यूजर कह रहा है कि मुझे पैसा निकालना है। अभी आप वो सब भूल जाओ कि हम पिन भी डालते हैं, वेरीफाई करते हैं। उसको भूल जाओ। अभी बस आप इतना मान लो कि हम अमाउंट डालते हैं, अकाउंट नंबर डालते हैं। एक ट्रांजैक्शन बनती है जो हम देखते हैं कि हमारे अकाउंट में उतना पैसा और निकल जाता है। तो पिन वेरीफाई नहीं कर रहे। मान लो उसके लिए अलग यूज़ केस है। क्योंकि हर यूज़ के लिए एक अलग सीक्वेंस डायग्राम बनता है। हर यूज़ केस के लिए एक अलग सीक्वेंस डायग्राम बनता है। और एक एप्लीकेशन में हजारों यूज़ केस हो सकते हैं। यानी कि हजारों सीक्वेंस डायग्राम हो सकते हैं। तो आपको कभी भी पूरी की पूरी एप्लीकेशन का सीक्वेंस डायग्राम नहीं बनाना होता। एक फ्लो का बनाना होता है। तो हम वही डिस्कस कर रहे हैं। तो हमने कहा हमने एटीएम को मैसेज भेजा विथड्रॉ अमाउंट और अकाउंट नंबर के साथ। फिर एटीएम ने क्या किया? यही विथड्रॉ मैसेज भेजा अमाउंट और अकाउंट नंबर के साथ और एक नया ऑब्जेक्ट ट्रांजैक्शन बना लिया। अब ट्रांजैक्शन बनाया उसका एक्टिवेशन बार शुरू हो गया। ठीक है? जैसे ही उसका एक्टिवेशन बार शुरू हुआ उसने मैसेज भेजा चेक अमाउंट और अमाउंट देके किसको? अकाउंट वाले ऑब्जेक्ट को। अकाउंट तब तक इनक्टिव था जैसे ही इसने मैसेज भेजा। अकाउंट ऑलरेडी उस टाइम एक्टिव था। चेक बेसिकली उस टाइम एक्टिवेट हो गया। चेक अमाउंट ने क्या किया? वेरीफाई किया कि हमारे अकाउंट में मतलब यूजर के अकाउंट में इस यूजर के अकाउंट में सफिशिएंट फंड है कि वो पैसा निकाल सके। अगर है तो हमने रिटर्न कर दिया ट्रू। ये हमने एक सिंक्रोनस मैसेज भेजा। उसका सिंक्रोनस रिस्पांस आ गया ट्रू। तो जैसे ही इसने ट्रू रिटर्न किया इस ट्रांजैक्शन को। इसने ट्रू रिटर्न कर दिया सेम इस एटीएम को और ये क्लोज हो गया। यानी कि ये कौन सा मैसेज हुआ? ये क्रिएट था। तो ये था डिस्ट्रॉय मैसेज। यहां पे ऑब्जेक्ट अपना डिस्ट्रॉय हो गया। क्योंकि अब इस ट्रांजैक्शन का कोई काम नहीं है। इसने ट्रू रिटर्न कर दिया एटीएम को कि हां इस पर्टिकुलर टाइम ज़ोन में इस अमाउंट इस अकाउंट में ये वाला अमाउंट एग्ज़िस्ट करता है। तो जैसे ही इसने ट्रू रिटर्न किया हमने क्या किया? हमने दोबारा ये मैसेज भेजा विथड्रॉ कैश का कैश डिस्पेंसर के पास। देखो कैश डिस्पेंसर तब तक इनक्टिव था अपनी लाइफलाइन में और एक्टिवेट हुआ जब एक्चुअली उसको कैश निकालना था। ठीक है? तो कैश डिस्पेंसर के बाद हमने विथड्रॉ कैश का मैसेज भेजा जिसने रिटर्न किया अमाउंट के साथ एटीएम को और वो अमाउंट वापस दे दिया यूजर को एटीएम ने। यहां पे एटीएम भी बंद हो गया। यूजर भी बंद हो गया और बाकी सारे ऑब्जेक्ट्स भी बंद हो गए क्योंकि पूरा का पूरा फ्लो खत्म। तो इन शॉर्ट क्या हुआ? सबसे पहले यूजर ने विथड्रॉ भेजा एटीएम को। एटीएम ने ट्रांजैक्शन क्रिएट किया। जैसे ही एटीएम ने ट्रांजैक्शन क्रिएट किया, ट्रांजैक्शन ने चेक किया कि एम अकाउंट में उतना अमाउंट है। अगर है तो ट्रू रिटर्न हुआ। वो इसने रिटर्न इसको ट्रू किया। और फिर हमने कैश डिस्पेंसर को बोला अमाउंट दे। उसने कहा ट्रू यानी कि अमाउंट दे दिया। नॉट ट्रू। उसने लिटरली अमाउंट दिया और वो अमाउंट हमने यूजर को पास ऑन कर दिया। तो ये पूरा का पूरा एक सीक्वेंस डायग्राम है इस पर्टिकुलर यूज़ केस के लिए। अच्छा अब कुछ बची बचाई चीजें। ठीक है? सीक्वेंस डायग्राम में और भी दो-तीन चीजें होती हैं। ठीक है? कुछ टर्म्स होते हैं। जैसे कि एक टर्म होता है हमारा एलटी ऑल्ट। ठीक है? अब ये ऑल्ट या ये सब जो टर्म्स होते हैं ये क्या होते हैं? अच्छा चलो अब कुछ बची बचाई चीजें। ठीक है? ये जो सीक्वेंस डायग्राम होता है ना इसके अला इसी में हमारे पास कुछ टर्म्स होते हैं। बचे और टर्म्स ऐसे हैं जो अभी तक हमने डिस्कस नहीं किए। जैसे कि एक टर्म होता है ऑल्ट। अब ऑल्ट क्या होता है? ऑल्ट बेसिकली इफ एल्स को डिनोट करता है। जैसे हमारे प्रोग्रामिंग में इफ एल्स होता है ना उसको डिनोट करता है। फॉर एग्जांपल अगर आप इसमें देखो हमने कहा एक यूज़ केस ये था जिसमें इस ट्रांजैक्शन ने रिटर्न किया ट्रू। कि अमाउंट है पर मान लो अमाउंट ना होता तो उसके लिए हम क्या करते एक अलग अल्टरनेट बनाते जहां पे हम यहां लिखते ए एलटी ऑल्ट और सेम फ्लो बनाते जिसमें वो रिटर्न करता फॉल्स और उस केस में क्या होता वो इस ब्लॉक के अंदर आता। ठीक है? अगर आपको जानना है ये सब कैसे बनता है आप Google कर सकते हो आपको बहुत सारे मिल जाएंगे। नहीं तो जब हम डिस्कस करेंगे एक्चुअली में अ सीक्वेंस डायग्राम किसी एग्जांपल में तो अब वो आप वो समझ जाओगे। बहुत बड़े सीक्वेंस डायग्राम बनते हैं उस केस में। पर आप समझ जाओगे कि मैं क्या कहना चाहता हूं। ऑल्ट का मतलब इफ एल्स ब्लॉक होता है। आप देख सकते हो किसी भी एग्जांपल में। वैसे ये बहुत कम यूज़ होते हैं क्योंकि आप जनरली एक हैप्पी फ्लो डिस्कस करते हो। हैप्पी फ्लो का मतलब हर चीज अच्छी चल रही है। रिस्पांस भी ट्रू ही आएगा। अमाउंट हमेशा होगा। अकाउंट हमेशा वेरीफाई हो जाएगा। इस तरह। इसके अलावा हमारे पास एक होता है ऑप्शन। ऑप्शन बेसिकली सिर्फ इफ कंडीशन को डिनोट करता है ना कि इफ एल्स को। सेम आप समझ ही सकते हो कैसे। एक इफ एल्स होता है, एक इफ होता है। उसके अलावा हमारे पास एक लूप होता है और ये वही है जो प्रोग्रामिंग में हमारे पास जैसे फॉर लूप है, वाइल लूप है, उसको डिनोट करने के लिए अगर आपको बेसिकली एक आइटरेशन शो करनी है। राइट? तो ये तीन हैं जो हम यूज़ करते हैं अदर दैन ऑल द थिंग्स ऑल्ट, ऑप्शन एंड लूप। ठीक है? वैसे तो बहुत कम यूज़ होते हैं। पर जनरली फिर भी एक अच्छी बात है कि आपको पता होना चाहिए कि सीक्वेंस डायग्राम ये सब भी होता है। बाकी दिस इज़ दी सीक्वेंस डायग्राम ऑफ़ एटीएम। और बहुत बड़ा लेक्चर हो गया ये भी। हमने देखा क्लास डायग्राम क्या होते हैं और हमने देखा सीक्वेंस डायग्राम क्या होते हैं और इसके बाद हम सॉलिड डिज़ाइन प्रिंसिपल्स पढ़ेंगे अपने नेक्स्ट लेक्चर में जो कि बहुत जरूरी है और अब हम एक्चुअली अ नए कांसेप्ट्स की तरफ जाने वाले हैं जो शायद आपने पहले कभी नहीं पढ़े होंगे अगर आपने एलएलडी कभी नहीं पढ़ी है तो और आपको बहुत मजा आने वाला है इस लेक्चर में बस इतना ही तब तक के लिए थैंक यू सो मच

Need a transcript for another video?

Get free YouTube transcripts with timestamps, translation, and download options.

Transcript content is sourced from YouTube's auto-generated captions or AI transcription. All video content belongs to the original creators. Terms of Service · DMCA Contact

What is UML Diagrams | Class & Sequence Diagrams with Rea...