de_DEen_USes_ESfa_IRfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

ओपन-क्लोज़ प्रिंसिपल (OCP) क्या है?

द ओपन / क्लोज़ प्रिंसिपल सॉफ्टवेयर डेवलपमेंट दुनिया में सबसे मूल डिज़ाइन सिद्धांत है। यह हमें एक स्थिर और लचीला सिस्टम बनाने के लिए मार्गदर्शन करता है।

परिभाषा:

एक सॉफ्टवेयर एकाइटी जैसे क्लास, मॉड्यूल और फंक्शन को एक्सटेंशन के लिए खुला रखना चाहिए और संशोधन के लिए बंद रखना चाहिए।

ओपनिंग और क्लोजिंग के सिद्धांत का अर्थ यह है कि एक सॉफ्टवेयर एकाइटी को बदलाव प्राप्त करने के लिए विस्तारित किया जाना चाहिए, अस्तित्व में मौजूद कोड को संशोधित करके बदलाव प्राप्त करने के बजाय।

ओपनिंग और क्लोजिंग सिद्धांत एक ऐसा सिद्धांत है जो सॉफ्टवेयर एकाइटी के भविष्य के चीजों के लिए वर्तमान विकास और डिज़ाइन को सीमित करता है।

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

ओपनिंग और क्लोजिंग सिद्धांत का महत्व:

  • टेस्टिंग पर ओपनिंग और क्लोजिंग सिद्धांत का प्रभाव

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

  • ओपनिंग और क्लोजिंग सिद्धांत दोहराने योग्यता में सुधार कर सकता है

में ऑब्जेक्ट-ओरिएंटेड डिज़ाइन, सभी तर्क एटॉमिक तर्क से जुड़े होते हैं, एक क्लास में व्यक्तिगत रूप से व्यवसाय तर्क को लागू करने के बजाय। केवल इस तरीके से कोड को दोहराया जा सकता है। जितना छोटा ग्रेन्यूलारिटी होगा, उतनी ही अधिक संभावना होगी कि इसे दोहराया जा सके।

  • ओपन और क्लोज़ प्रिंसिपल रखरखाव में सुधार कर सकता है
  • ऑब्जेक्ट-ओरिएंटेड विकास की आवश्यकताएं

ओपनिंग और क्लोजिंग सिद्धांत का उपयोग कैसे करें:

पहले, इंटरफेस या एब्स्ट्रैक्ट क्लास के माध्यम से विस्तार को सीमित करें, सीमा के विस्तार को सीमित करें, और इंटरफेस या एब्स्ट्रैक्ट क्लास में न मौजूद पब्लिक विधियों की अनुमति न दें;

दूसरे, पैरामीटर प्रकार और रेफरेंस ऑब्जेक्ट्स के लिए इंटरफेस या एब्स्ट्रैक्ट क्लास का उपयोग करने की कोशिश करें, इंप्लीमेंटेशन क्लास के बजाय;

तीसरे, एब्स्ट्रैक्शन लेयर को जितना संभव हो उतना स्थिर रखा जाना चाहिए, एक बार निश्चित होने के बाद कोई संशोधन अनुमत नहीं है।

परिवर्तनों के एनकैप्सुलेशन के दो अर्थ हैं:

पहले, समान परिवर्तनों को एक इंटरफेस या एब्स्ट्रैक्ट क्लास में एनकैप्सुलेट करें;

दूसरे, अलग-अलग परिवर्तनों को अलग-अलग इंटरफेस या एब्स्ट्रैक्ट क्लास में एनकैप्सुलेट करें। दो अलग-अलग परिवर्तन एक ही इंटरफेस या एब्स्ट्रैक्ट क्लास में नहीं होने चाहिए।


उदाहरण

एक उदाहरण, हाथ से दरवाज़े खोलना और बंद करना।

यदि कोई नया मांग है, तो हाथ से ड्रॉर को खोलने और बंद करने के कार्य को बढ़ाना आवश्यक है। कोड के लिए, आपको एक Drawer क्लास जोड़ने और हाथ क्लास को एक साथ संशोधित करने की आवश्यकता है।

OCP खोलने और बंद करने के सिद्धांत के उदाहरण का अनुसरण करते हुए, हाथ से दरवाजे को खोलने और बंद करने के लिए एक इंटरफेस पर निर्भरता होती है, और विशिष्ट कार्यान्वयन क्लास इस इंटरफेस को लागू करती है।

जब फ्रिज को खोलने और बंद करने के लिए हाथों की संख्या बढ़ाने की आवश्यकता होती है, तो फ्रिज क्लास मूल हाथ क्लास और इंटरफेस को संशोधित किए बिना इस इंटरफेस को लागू करती है।

अधिक ऑब्जेक्ट-ओरिएंटेड संसाधन

यह पोस्ट Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 और 繁體中文 में भी उपलब्ध है।