दिलचस्प पोस्ट
पंडों में डेटाफ्रेम में गैर-संख्यात्मक पंक्तियों का पता लगाना? पायथन में JSON पार्स करें Android में ब्लूटूथ प्रोग्राम को सक्षम / अक्षम कैसे करें एक `चर 'नाम के बाद और` “ “ ““ के बाद अंतर क्या है? ब्रॉडकास्ट रिसीवर करता है। फिर हमेशा UI थ्रेड में चलाएं? एंड्रॉइड – केवल शीर्ष पर गोलाकार कोनों के साथ चित्रकारी सी # में यूआरआई स्ट्रिंग से फ़ाइल नाम प्राप्त करें एक छवि का प्रतिनिधित्व करते हुए एक अंडाकार सरणी को रीसामप्लिंग करना मैत्रीपूर्ण URL के लिए .php एक्सटेंशन (स्पष्ट रूप से लिखा हुआ) निकालें Google मैप्स एंड्रॉइड एपीआई v2 – मानचित्र पर संपर्क का पता लगाएं किसी वेब पेज से क्रोम एक्सटेंशन पर संदेश भेजना होम को दबाए जाने के बाद आवेदन को पुन: लॉन्च करते समय नवीनतम लॉन्च गतिविधि पर वापस कैसे जाना है? PyInstaller 2.1 और MEIPASS त्रुटि के साथ डेटा फ़ाइलें बंडल –ऑनफ़ाइल अपलोड करने के लिए फ़ाइल में HTML5 कैनवास कन्वर्ट? दृश्य प्रोग्रामिंग पर पैडिंग जोड़ें

क्या ओओपी के लिए कोई नियम हैं?

हाल ही में मैंने सुना है कि ओओपी (जावा) के 9 नियम हैं। मैं केवल चारों तरफ अमृत, पोलीमॉर्फिज़्म, वंशानुक्रम और इनकिप्सुलेशन के बारे में जानता हूं। क्या ओओपी के लिए कोई और नियम हैं?

Solutions Collecting From Web of "क्या ओओपी के लिए कोई नियम हैं?"

ऐसा लगता है कि आप क्या चाहते हैं , ऑब्जेक्ट-ओरिएंटेड डिज़ाइन के सिद्धांत हैं

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

एसआरपी एकल उत्तरदायित्व सिद्धांत एक वर्ग को बदलने का एकमात्र कारण होना चाहिए।

ओसीपी ओपन-क्लोज़ेड प्रिंसिपल सॉफ़्टवेयर संस्थाएं (कक्षाएं, संकुल, विधियां, आदि) विस्तार के लिए खुली होनी चाहिए, लेकिन संशोधन के लिए बंद कर दिया गया है।

एलएसपी द लिस्कॉव सबस्टीशन सिद्धांत उपप्रकार उनके आधार प्रकारों के लिए प्रतिस्थापन होना चाहिए।

डुबकी निर्भरता उलटा सिद्धांत सिद्धांत का विवरण विवरण पर निर्भर नहीं होना चाहिए। विवरणों पर निर्भर होना चाहिए अपरिवर्तनीय

आईएसपी इंटरफ़ेस अलगाव सिद्धांत क्लायंट उन तरीकों पर निर्भर होने के लिए मजबूर नहीं होंगे जिनका वे उपयोग नहीं करते हैं। इंटरफेस ग्राहकों से संबंधित हैं, पदानुक्रम नहीं।

आरईपी रिलीज-रियूज इक्विविन्सी प्रिंसिपल पुन: उपयोग की ग्रेन्युल रिहाई की ग्रेन्युल है।

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

सीआरपी सामान्य पुनः उपयोग सिद्धांत एक पैकेज में कक्षाएं एक साथ पुन: उपयोग की जाती हैं। यदि आप किसी पैकेज में कक्षाओं में से एक का पुन: उपयोग करते हैं, तो आप उन सभी का पुन: उपयोग करते हैं

एडीपी एसेलिक निर्भरता सिद्धांत निर्भरता ग्राफ में कोई चक्र की अनुमति नहीं है।

एसडीपी स्थिर निर्भरता सिद्धांत स्थिरता की दिशा में निर्भर करते हैं।

स्थिर एब्स्ट्रैक्शंस सिद्धांत एसएपी एक पैकेज सार के रूप में होना चाहिए क्योंकि यह स्थिर है

किसी भी नियम के बारे में निश्चित नहीं है ये सभी उल्लेखनीय चीजें मेरे लिए ओ ओ पैरागिम्स की तरह अधिक हैं ऐसी कुछ सलाहएं हैं जिनके हम पालन करते हैं,

  • चिंता का पृथक्करण
  • प्रति वर्ग एकल उत्तरदायित्व
  • विरासत पर संरचना को प्राथमिकता देना
  • इंटरफ़ेस के लिए प्रोग्रामिंग
  • प्लस सभी Billybob द्वारा पहले से ही उल्लेख किया है,

इन ओओ सिद्धांत सीधे हेड फर्स्ट डिज़ाइन पैटर्न से हैं :

  • क्या बदलता है
  • एक कार्यान्वयन के बजाय एक इंटरफेस के लिए कार्यक्रम
  • वंशानुक्रम पर रचना का समर्थन
  • एक वर्ग को बदलने का एकमात्र कारण होना चाहिए ( एकल उत्तरदायित्व सिद्धांत )
  • उप-प्रकार उनके आधार ( प्रतिशोधन सिद्धांत ) के लिए प्रतिस्थापन होना चाहिए
  • कक्षाएं शोल विस्तार के लिए खुली रहें, लेकिन संशोधन के लिए बंद ( खुला-बंद सिद्धांत )

ये अवधारणा हैं, नियम नहीं हैं वास्तव में कोई नियम नहीं हैं, बस बनाने के फैसले, कुछ डिज़ाइन दूसरों की तुलना में बेहतर हैं, दूसरों की तुलना में कुछ बेहतर 🙂

हालांकि बहुत सारे दिशानिर्देश हैं 🙂 कुछ भाषा विशिष्ट हैं (सी ++ उनके साथ भरा हुआ है) अन्य ओ ओ विशिष्ट हैं बहुत सारे सूची में हालांकि 🙂

मेरे सिर के ऊपर बंद, महत्वपूर्ण हैं:

  • ढीला युग्मन, उच्च सामंजस्य
  • परीक्षण योग्य वर्ग लिखें, जो आप परीक्षण करते हैं
  • वारिस का प्रयोग संयमी और केवल जहां यह समझ में आता है (संरचना पसंद करते हैं)
  • खुला / बंद सिद्धांत को छड़ी की कोशिश करो
  • (सबसे महत्वपूर्ण) चुंबन

विस्तार करने और जोड़ने के लिए बहुत कुछ 🙂

संपादित करें: मुझे जोड़ना चाहिए, आपके द्वारा सूचीबद्ध नियम ओ ओ के लिए अद्वितीय नहीं हैं

व्यावहारिक प्रोग्रामर्स के अनुसार – नियम हैं:

  • इसे सूखा रखें (खुद को दोबारा मत दो)
  • इसे SHY रखें (सुनिश्चित करें कि आपके कक्षाओं में उच्च सामंजस्य और कम युग्मन है)
  • और अन्य लोगों को बताएं (चिंताओं का पृथक्करण)

http://media.pragprog.com/articles/may_04_oo1.pdf

ओओपी के लिए कोई "नियम" नहीं हैं

वहाँ 4 भाषा गुण हैं जो भाषा को ऑब्जेक्ट ओरिएंटेड बनाते हैं या नहीं (ये आपके चीजों में सूचीबद्ध हैं)।

शेष सामग्री बाहर दिशानिर्देश हैं मैंने पढ़ा है सबसे अच्छा / सबसे उपयोगी दिशा निर्देशों GRASP हैं

कई सुझाव लेमेन (गैर-सीएस की बड़ी कंपनियों) द्वारा आसानी से समझ में नहीं आते हैं। मैंने सोचा था कि ग्रास व्यावहारिक और सुलभ था।

मुझे लगता है कि GRASP अच्छा है क्योंकि यह ओ ओ के सबसे महत्वपूर्ण भाग को अपने नाम में बताता है – उत्तरदायित्व का असाइनमेंट (ऑब्जेक्ट नहीं प्रोग्रामर)।

दो सबसे महत्वपूर्ण ग्रास अवधारणाएं जिनमें से सब कुछ युग्मन और सामंजस्य है। ये दो अवधारणाएं / प्रिंसिपल अन्य सभी पैटर्न और दृष्टिकोणों को चलाते हैं

बीटीडब्लू – क्या मैंने आपको बस साक्षात्कार किया था? आपने प्रश्न गलत तरीके से लिखित किया …