क्यों ओ.ओ.पी.

हम OOP के बारे में जारी रखते हैं।



एक सतही समझ है। मैं सवाल का जवाब "क्यों" (योजना की भव्यता को साकार) करने की कोशिश करूंगा।



चलो करते हैं। "ओओपी क्यों" प्रश्न के बारे में सोचें, कुछ शब्द दें। ओओपी के सभी लाभों को जितना संभव हो सके व्यक्त करें।



जब तक आप अपने लिए उत्तर नहीं देते तब तक "और पढ़ें" पर क्लिक न करें







बेशक, कोई भी सही उत्तर नहीं जानता है। लेकिन दो सबसे महत्वपूर्ण लाभ इस प्रकार हैं:



1. मानव संसाधन का क्रम



CODE के प्रभाव का 2. स्थान



1. समझ का सरलीकरण - आदमी द्वारा। आखिरकार, हमारी मानव भाषा इतनी व्यवस्थित है। बतख मजाक याद है?



कुर्सी क्या है? "यह एक कुर्सी है, वे इस पर बैठे हैं।" यह व्यवहार और विषय दोनों है।



किसी व्यक्ति को उसके व्यवहार को परिभाषित करने वाले एक शब्द में समान व्यवहार की वस्तुओं के _class को नामित करने के लिए उपयोग किया जाता है।



इस तथ्य में क्या आश्चर्य है कि यह अभ्यास प्रोग्रामिंग में स्थानांतरित हो गया है?



आखिरकार, स्टैक के बारे में "डेटा और कोड के इस सेट के बारे में बात करना बहुत आसान है जो पहले दर्ज की गई वस्तु को देता है"।



2. प्रभाव का स्थानीयकरण।



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



हम विस्तार करना शुरू करते हैं - हम एक लेनदेन रिकॉर्ड चाहते हैं। कैसे हो? यह उन सभी स्थानों पर जाना चाहिए जहां डिस्क पर कोई रिकॉर्ड है।



आदि कुछ समय बाद, एप्लिकेशन का विस्तार करना TOO महंगा हो जाता है। हमें वह मिलता है जिसे "अखंड अनुप्रयोग" कहा जाता है। यह बुरा है, ऐसा लगता है कि हर कोई इसे समझता है।



ध्यान देना एक प्रश्न है। और एक "एंटी-मोनोलिथिक" एप्लीकेशन क्या है? सोचना बंद करो। सही वास्तुकला क्या है?



सब कुछ सरल है - यह आसानी से कार्यों के ढांचे में फैलता है।



इसे कैसे प्राप्त किया जाए?



सही उत्तर यह है कि आपको समान व्यवहार को अलग करना होगा और इसे एक स्थान पर प्रोग्राम करना होगा।



अगला सवाल वही है "व्यवहार" क्या है? घटक, वर्ग, वस्तु? क्या यह महत्वपूर्ण है?



कोई फर्क नहीं पड़ता कि आप इसे क्या कहते हैं। डेटाबेस क्या है? एक वस्तु, वर्ग, मॉड्यूल, घटक? यह महत्वपूर्ण नहीं है।



महत्वपूर्ण बात यह है कि बाहरी डेटा स्टोरेज को प्रबंधित करने के लिए BEHAVIOR के कार्यान्वयन के लिए हमें अपना खुद का STATE होना चाहिए।



और उन्होंने इस व्यवहार से अपने कोड को "मुक्त" कर दिया।



आप शायद अनुमान लगा चुके हैं कि मुझे क्या मिल रहा है।



इसके अलावा, जिन सिद्धांतों को मैं "ओओपी के सिद्धांत" (व्यवहार को अलग करने और एक राज्य के लिए अनुमति) को स्वाभाविक रूप से कहता हूं, _all_ थोड़ा अधिक जटिल कार्य को हल करते समय स्वाभाविक रूप से उत्पन्न होते हैं। यह महत्वपूर्ण है और मैं दोहराऊंगा:



केवल व्यवहार का अलगाव (विशेषज्ञता) आपको एक वास्तुकला बनाने की अनुमति देता है जो आसानी से विस्तार योग्य है। व्यवहार के पृथक्करण का अर्थ है किसी की अपनी (स्थानीय) स्थिति का दिखना और इसलिए, कुछ ऐसी इकाइयाँ हैं जो राज्य को संग्रहीत करती हैं। राज्य के "इलाके" का अर्थ है कि कोड का प्रभाव इकाई के दायरे द्वारा सीमित है।



हम संस्थाओं को ऑब्जेक्ट्स (कक्षाओं के उदाहरणों के अर्थ में), और व्यवहार - एक वर्ग कहते हैं।



यह OOP है।







कार्यान्वयन तंत्र भाषाओं और संकलक के रचनाकारों के विवेक (या बेशर्मी) पर टिका हुआ है।



कहीं स्वत: विध्वंसक है, कहीं - कहीं। कहीं पर निजी वर्ग के आंकड़े हैं, कहीं नहीं। कहीं न कहीं विरासत है, और कहीं न कहीं इसे बनाने की जरूरत है। कहीं पर स्पष्ट कक्षाएं हैं, लेकिन कहीं वस्तु कुछ भी हो सकती है। कहीं इंटरफेस हैं, कहीं नहीं।



यह OOP नहीं है। ये _ कार्यान्वयन तंत्र हैं।



OOP एक आवेदन पत्र है



OOP का मुख्य सिद्धांत EXTENDING CLASSES है।



REVEAL (LOCALIZE) इस वर्ग के लिए BEHAVIOR और बनाएँ।



और अधिक। यह BEGINNERS के लिए नहीं है।



_ वस्तुओं का उपयोग करना OOP नहीं है। यदि कोई प्रोग्रामर Math.random () को कॉल कर सकता है, तो वह OOP प्रोग्रामर नहीं बनता है।



लेकिन ओओपी-शैली का विकास मूल बातें नहीं है। प्रोग्रामिंग शुरू नहीं की।



व्यवहार की पहचान करने के लिए - आपको अनुभव होना चाहिए। आपको यह समझने की आवश्यकता है कि "व्यवहार का विशेषज्ञता" क्या है।



शुरुआत कैसे करें? अच्छी तरह से डिजाइन किए गए अनुप्रयोगों का अन्वेषण करें। उस क्षेत्र में जो दिलचस्प है।






All Articles