2012-01-11 14 views
5

में अमूर्त कक्षाएं बनाना संभव नहीं है क्योंकि उद्देश्य में सी सार कक्षाएं बनाना वास्तव में संभव नहीं है- मैं सोच रहा था कि कोई मुझे क्यों बता सकता है उद्देश्य-सी डीएनएन के निर्माता इस सुविधा को भाषा में जोड़ें।उद्देश्य-सी

* बेशक कुछ अमूर्त वर्ग बनाने के लिए कुछ कामकाज हैं लेकिन मेरा मतलब यह नहीं है।

उत्तर

9

यदि आप का मतलब है कि आप इसे एक अमूर्त वर्ग के रूप में लागू करने के बजाय कक्षा सार घोषित क्यों नहीं कर सकते हैं, तो मुझे लगता है कि ऐसा इसलिए है क्योंकि यह उद्देश्य-सी के अत्यंत गतिशील, प्रकार-वैकल्पिक, स्मॉलटाकी के साथ इतना अच्छा व्यवहार नहीं करता है संदेश-गुजरने वाली शैली (स्मॉलटाक में उन्हें घोषित करने के लिए अंतर्निहित समर्थन नहीं है)। उदाहरण के लिए:

  • आप क्या वर्ग आप भेज रहे हैं alloc या init लिए, तो यह एक बहुत कमजोर गारंटी

  • उपवर्गों अभी भी वर्ग अप alloc और init पारित करने के लिए आवश्यकता हो सकती है हो सकता है पता नहीं हो सकता है पदानुक्रम, तो हम है कि अनुमति देने के लिए, यह एक भी कमजोर गारंटी

  • श्रेणियाँ कार्यावधि में कक्षाओं को संशोधित कर रही है, आवश्यकता होगी अभी भी कमजोर यह सार अनुबंध बनाने

  • 012,

अंत में, आप एक ऐसे कीवर्ड के साथ हवा में उतरेंगे जो लगभग वही काम करता है जो हम अमूर्त वर्गों को लागू करने के लिए करते हैं (यानी। अगर रिसीवर उप-वर्ग नहीं है तो शायद init को जमानत के लिए ओवरराइड करें)।

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

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^