यह the article, में कहते हैं यह आवश्यकता सुपर विधि antipattern है कि, सुपर वर्ग यानी कॉल करने के लिए है कि आप बनाने के लिए विधि ओवरराइड करने के लिए "उम्मीद" कार्यक्षमता पूर्ण - लेकिन यह इस उम्मीद को स्पष्ट किए बिना ऐसा करता है। और यह भी आपको सुपर कार्यान्वयन कॉल करने की उम्मीद है। कार्यक्रम के लिए दोनों काम करने के लिए आवश्यक हैं।
यह एक एंटीपार्टर्न है, क्योंकि प्रोग्रामर के इरादे कोड से नहीं लिया जा सकता है। यदि आपके सहकर्मियों ने इस पर काम करने का फैसला किया है, तो वे नहीं जान पाएंगे कि कक्षा को आप क्या करने की उम्मीद करते हैं, और इसलिए उन्हें समस्याएं और/या परेशानियों का सामना करना पड़ सकता है।
तो यदि आप किसी विधि के कुछ हिस्सों को ओवरराइड करने की अपेक्षा करते हैं, लेकिन अन्य चीजों को जगह में रहने की आवश्यकता है, तो template method pattern का उपयोग करने की अनुशंसा की जाती है, जहां आप उन सभी चीजों को रखते हैं जिन्हें एक (निजी) में नहीं बदला जाना चाहिए विधि, जो कॉल करता है एक और एक - पूरी तरह से अलग -, प्रोग्राम को काम करने के लिए लागू किया जाना चाहिए (कुछ भाषाओं में, यह अन्यथा संकलित भी नहीं होगा)। इस तरह, आप सुनिश्चित करते हैं कि महत्वपूर्ण चीजें रहें जहां उन्हें होना है, और जो कोई भी कक्षा को विस्तारित करता है उसे पता चलेगा कि क्या करना है, जबकि अन्य कार्यान्वयन विवरणों के आनंद से अनजान रहना।
उद्देश्य-सी में सार या वर्चुअल विधियां नहीं हैं, लेकिन यदि आप सुपर विधि कहलाते हैं तो आप स्पष्ट रूप से अपवाद उठाकर उसी प्रभाव को प्राप्त कर सकते हैं। इस तरह, यदि आपके सहकर्मी विधि को ओवरराइड करना भूल जाते हैं, तो प्रोग्राम क्रैश हो जाएगा - और यह एक त्रुटि संदेश के साथ दुर्घटनाग्रस्त हो जाएगा जो वे समझेंगे, और इससे उन्हें समस्या को समझने और ठीक करने में सक्षम किया जाएगा, कुछ अनियमित कार्यक्षमता पूर्ण होने के कारण, कोई स्पष्टीकरण के साथ व्यवहार।
क्या आप स्रोत प्रदान कर सकते हैं? कॉलिंग सुपर ऑब्जेक्ट उन्मुख प्रोग्रामिंग का एक हिस्सा है, मुझे नहीं पता कि यह एक विरोधी पैटर्न क्यों होना चाहिए .. – NSAddict
संबंधित विकिपीडिया लेख से लिंक करें? (याद रखें विकिपीडिया को सहयोगी रूप से संपादित किया गया है, वे _could_ गलत हो)। – driis
यह वास्तव में दुखी है कि यह प्रश्न "रचनात्मक नहीं" के रूप में चिह्नित है। मैंने इसे बहुत महत्वपूर्ण पाया – Kuba