Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

मौलिक OOP सिद्धांतों के साथ अपने रूबी कोड को नाटकीय रूप से कैसे सुधारें

दो सबसे महत्वपूर्ण वस्तु-उन्मुख सिद्धांत सामंजस्य और युग्मन हैं।

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

युग्मन यह है कि एक वर्ग अन्य वर्गों पर कितना निर्भर है, यह बाकी प्रणाली के लिए कितना "एक साथ बंधा हुआ" है, और इस वर्ग की अलगाव में उपयोग करने की क्षमता है।

मौलिक OOP सिद्धांतों के साथ अपने रूबी कोड को नाटकीय रूप से कैसे सुधारें

ये दोनों अवधारणाएं आपको लेंस के एक विशिष्ट सेट के माध्यम से आपके कोड बेस में प्रत्येक वर्ग को देखने में मदद करती हैं। ये लेंस आपको यह पता लगाने में मदद करते हैं कि आपकी कक्षा का डिज़ाइन कितना ठोस है और आप कहाँ कुछ बदलाव कर सकते हैं।

सर्वोत्तम परिणामों के लिए आप उच्च सामंजस्य का लक्ष्य रखना चाहते हैं &कम युग्मन

सामंजस्य का एक उदाहरण

कम सामंजस्य आपके पिज्जा पर एक असामान्य टॉपिंग की तरह है, जबकि उच्च सामंजस्य ऐसा महसूस करता है कि सब कुछ वहीं है जहां इसे होना चाहिए।

आप इसके लिए एक भावना प्राप्त कर सकते हैं, लेकिन इसे मापना कठिन है, आपको केवल एक संख्या नहीं मिल सकती है जो आपको बताए कि आपकी कक्षा कितनी एकजुट है। तो इसे समझने में आसान . बनाने के लिए मैं आपको एक कोड उदाहरण दिखाना चाहता हूं जहां यह वास्तव में स्पष्ट है।

ये रहा:

कक्षा लाइब्रेरी def लेंड_बुक एंड डीफ रिटर्न_बुक एंड डेफ मेक_कॉफी एंडेंड

इस उदाहरण में make_coffee काफी अलग है, भले ही इस पुस्तकालय में एक कैफेटेरिया है, यह Library के लिए कोई मतलब नहीं है कॉफी बनाने वाली कक्षा 🙂

कैफेटेरिया को किताबों के बारे में किसी भी जानकारी की आवश्यकता नहीं है, किताब कैसे उधार देनी है, आदि।

और पुस्तकालय को यह जानने की जरूरत नहीं है कि कितनी कॉफी बची है या इसे कैसे बनाया जाए।

कम सामंजस्य से हमारा यही मतलब है।

बेशक :

यह हमेशा स्पष्ट नहीं होता है, कभी-कभी आपको ध्यान देने . की आवश्यकता होती है और विधि के नामों से परे देखें।

  • ये तरीके वास्तव में क्या कर रहे हैं?
  • वे किस डेटा के साथ काम कर रहे हैं?
  • वे किन वस्तुओं के साथ सहयोग कर रहे हैं?

इन प्रश्नों से आपको अपनी कक्षा के सामंजस्य के स्तर का अंदाजा हो जाएगा।

आप कम सामंजस्य को कैसे ठीक करते हैं?

आपको उन विधियों को निकालने की आवश्यकता होगी जो इस वर्ग से संबंधित नहीं हैं, किसी अन्य वर्ग के लिए, अक्सर एक नई।

युग्मन का एक उदाहरण

आइए अब युग्मन पर एक नजर डालते हैं।

यहां उदाहरण दिया गया है :

क्लास शॉपिंगकार्ट attr_accessor :आइटम डेफ इनिशियलाइज़ @items =[] एंडएंडक्लास ऑर्डर डीईएफ़ प्रोसेस_ऑर्डर (कार्ट) कार्ट.आइटम्स.मैप (&:मूल्य)। इंजेक्ट (:+) एंडएंड

इस उदाहरण में Order ShoppingCart . के साथ अत्यधिक युग्मित है क्योंकि यह इसके बारे में बहुत कुछ जानता है, यह जानता है कि एक items है चर और यह उसके साथ कुछ गणना कर रहा है।

अब अगर आप ShoppingCart change बदलते हैं तो items . का कार्यान्वयन , आपको Order भी बदलना होगा ।

अच्छा नहीं!

हम इसे इस तरह ठीक कर सकते हैं :

क्लास शॉपिंगकार्ट attr_accessor :आइटम डेफ इनिशियलाइज़ @items =[] एंड डीफ़ कैलकुलेट_टोटल आइटम्स। 

हमने कपलिंग कम कर दी है गणना के विवरण को स्थानांतरित करके जहां वे संबंधित हैं।

यदि आपको इसके लिए एक रूपक की आवश्यकता है तो इन सेल फोन के बारे में सोचें जो एक निश्चित बैटरी के साथ आते हैं, वह है उच्च युग्मन

अगर आप बैटरी को बदल सकते हैं तो वह है कम कपलिंग

ध्यान दें कि आपको अभी भी कुछ स्तर के युग्मन की आवश्यकता है, फ़ोन बिना बैटरी और Order के काम नहीं करेगा ग्राहक को कितना शुल्क देना है, यह जाने बिना क्लास काम नहीं करेगी।

सारांश

आपने दो अति महत्वपूर्ण OOP सिद्धांतों, सामंजस्य और युग्मन के बारे में सीखा है। ये दो अवधारणाएं आपको यह पता लगाने में मदद करती हैं कि कक्षा में विधियां कितनी अच्छी तरह एक साथ काम करती हैं और आपकी कक्षा बाकी प्रणाली से कितनी स्वतंत्र है।

आप इसे अभी अपने किसी प्रोजेक्ट पर लागू कर सकते हैं, इसे खोल सकते हैं और अपनी कुछ कक्षाओं को देख सकते हैं . आपने अभी जो सीखा है उसका उपयोग करके आप उन्हें कैसे सुधार सकते हैं?

पढ़ने के लिए धन्यवाद! साझा करना . करना न भूलें और न्यूज़लेटर की सदस्यता लें यदि आपने अभी तक 🙂

. नहीं किया है
  1. अपने नेटफ्लिक्स खाते को पिन कोड से कैसे सुरक्षित करें

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

  1. अपने iPad और iPhone से QR कोड कैसे स्कैन करें?

    2018 की शुरुआत में, तकनीकी दिग्गज Apple ने iOS 12 के शानदार फीचर्स पेश किए। iPad और फोन पर स्कैन QR कोड एक ऐसी विशेषता थी जिसे Apple उपयोगकर्ताओं के अनुभव को अगले स्तर पर लाने के लिए जोड़ा गया था। यह सुविधा न केवल आपके जीवन को आसान बनाने में सक्षम है बल्कि टिकट, कूपन, उत्पाद सामग्री इत्यादि के बारे

  1. सत्यापन कोड के साथ अपना Gmail पासवर्ड कैसे रीसेट करें

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