यूएमएल 2 में सामान्यीकरण करना

माइकल जेसी चोनोल्स, जेम्स ए। शार्ड्टो द्वारा

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



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



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

कक्षाओं में समान विशेषताओं या संचालन को खोजने की इस प्रक्रिया को के रूप में जाना जाता है सामान्यीकरण। उदाहरण के लिए आप रिकॉर्डेडमीडिया नामक एक अधिक सामान्य वर्ग में विशेषता रिकॉर्ड लम्बाई को सामान्यीकृत करते हैं। यूएमएल में सामान्यीकरण दिखाने की प्रक्रिया सरल है:



1. उपवर्गों को पहचानें।

उन वर्गों का पता लगाएँ जिनमें समान विशेषताएँ और/या संचालन हैं। ये वर्ग आपके उपवर्ग हैं।

2. एक सुपरक्लास बनाएं।



उपवर्गों की सामान्य विशेषताओं और/या संचालन को धारण करने के लिए एक सुपरक्लास प्रदान करें। सुपरक्लास को एक ऐसा नाम दें जो सभी उपवर्गों को वर्गीकृत करे। सुपरक्लास को आरेख में उपवर्गों के ऊपर रखने से इसे पढ़ना आसान हो जाता है लेकिन इसकी आवश्यकता नहीं होती है।)

गर्भावस्था के दौरान हाइड्रोकार्टिसोन क्रीम

3. सुपरक्लास में सामान्य सुविधाएँ जोड़ें।

उपवर्गों से सामान्य विशेषताओं और संचालन को हटा दें और उन्हें (एक बार) सुपरक्लास में रखें।

4. एक सामान्यीकरण संबंध बनाएं।

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

जब आप सामान्य सुविधाओं जैसे विशेषताओं और संचालन के साथ एक सुपरक्लास बनाते हैं, तो उपवर्ग इनहेरिट सुपरक्लास से वे विशेषताएं। इस तरह आपको प्रत्येक उपवर्ग में कई बार के बजाय केवल एक बार सुपरक्लास में सामान्य विशेषताओं को लिखना होगा।

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

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

आकृति 1: सरल विरासत पदानुक्रम।

डेवलपर्स सामान्यीकरण या विरासत शब्द का उपयोग साझा विशेषताओं और संचालन के पुन: उपयोग की उसी अवधारणा को संदर्भित करने के लिए करते हैं जो आप सुपरक्लास में दिखाते हैं और उप-वर्गों में पुन: उपयोग करते हैं। सामान्यीकरण विशिष्ट (उपवर्ग) से सामान्य (सुपरक्लास) तक सामान्यीकरण की अवधारणा को संदर्भित करता है। वंशानुक्रम उपवर्गों पर सामान्यीकरण के प्रभाव को संदर्भित करता है।

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

बेंज़ट्रोपिन xanax की तरह है

सामान्यीकरण संबंध में आपके पास कक्षा से केवल एक वस्तु है। भले ही आप दो वर्ग दिखाते हैं, उपवर्ग और सुपरक्लास, आपके पास केवल एक वस्तु है जो बनाई जाती है। आप सोच सकते हैं कि वीडियोटेप क्लास का ऑब्जेक्ट भी इनहेरिटेंस के कारण रिकॉर्डेडमीडिया क्लास का ऑब्जेक्ट है। चित्र 2 वीडियोटेप वर्ग से निर्मित एक वस्तु को उसकी सभी विशेषताओं के साथ दिखाता है। (एक वर्ग का उदाहरण एक वस्तु प्रतीक के रूप में दर्शाया गया है।) आपके पास दो अलग-अलग ऑब्जेक्ट नहीं हैं (एक RecordedMedia के लिए और एक वीडियोटेप के लिए), केवल एक ऑब्जेक्ट है। जब ऑब्जेक्ट vtu83-1023 बनाया गया था, तो इसकी सभी विशेषताओं के मान सेट किए गए थे। टेप पर रिकॉर्डिंग 57 मिनट की है। भौतिक टेप की कुल लंबाई 60 मिनट है। टेप एक उमैटिक वीडियो कैसेट है जिसकी ऊंचाई 10 इंच, चौड़ाई 7 इंच और गहराई 1.5 इंच है। रिकॉर्डिंग एनालॉग है, और पुरालेखपाल के संदर्भ के लिए टेप सामग्री का एक लॉग टेप से जुड़ा हुआ है।

चित्र 2: सभी विरासत में मिली विशेषताओं को दिखाने वाला एक उदाहरण।

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

दिलचस्प लेख