मैं इस बारे में उलझन में हूं कि प्रोटोकॉल और इंटरफेस के बीच क्या अंतर है? वे दोनों एक ही काम कर रहे प्रतीत होते हैं?उद्देश्य-सी में प्रोटोकॉल और इंटरफेस के बीच क्या अंतर है?
क्या यह सी # में सार जैसा है जिसमें आपको इसे लागू करने की आवश्यकता है?
मैं इस बारे में उलझन में हूं कि प्रोटोकॉल और इंटरफेस के बीच क्या अंतर है? वे दोनों एक ही काम कर रहे प्रतीत होते हैं?उद्देश्य-सी में प्रोटोकॉल और इंटरफेस के बीच क्या अंतर है?
क्या यह सी # में सार जैसा है जिसमें आपको इसे लागू करने की आवश्यकता है?
ऑब्जेक्टिव-सी में एक प्रोटोकॉल, जावा में एक अंतरफलक के रूप में ही है अगर thats तुम क्या मतलब है
क्या यह है सी # में अमूर्त की तरह आपको इसे लागू करने की आवश्यकता है? – user333639
यूप, प्रकार। ध्यान दें कि सी # में एक अमूर्त वर्ग और इंटरफेस के बीच मतभेद हैं। लेकिन सी # में एक इंटरफ़ेस जावा में एक इंटरफ़ेस जैसा ही है – SirLenz0rlot
ऑब्जेक्टिव-सी: ।
जावा: interface
।
अन्यथा, कोई फर्क नहीं पड़ता।
उद्देश्य सी में एक इंटरफेस एक सी ++ वर्ग घोषणा के बराबर है। और एक प्रोटोकॉल जावा इंटरफेस के बराबर है।
संपादित करें: उद्देश्य सी में कक्षा परिभाषा को इंटरफ़ेस और कार्यान्वयन नामक दो घटकों में विभाजित किया गया है, जो आपको हेडर फ़ाइलों को कम करने की अनुमति देता है। यह सी ++ के समान है। जावा के बराबर नहीं है, क्योंकि आप कक्षा परिभाषा के भीतर अपने वर्ग कार्यों को लागू करते हैं। सी # इस संबंध में जावा के समान है।
In Java - you implement an Interface
In Swift/Objective C - you conform to a Protocol
"Program to an Interface, not an Implementation"
- Design Patterns 1995
प्रोटोकॉल संबंधित गुणों और विधियों का एक समूह है जिसे किसी भी वर्ग द्वारा कार्यान्वित किया जा सकता है। वे एक सामान्य वर्ग इंटरफ़ेस से अधिक लचीला होते हैं, क्योंकि वे आपको पूरी तरह से असंबंधित कक्षाओं में एक एकल एपीआई घोषणा का पुन: उपयोग करने देते हैं। इससे मौजूदा वर्ग पदानुक्रम के शीर्ष पर क्षैतिज संबंधों का प्रतिनिधित्व करना संभव हो जाता है।
एक कक्षा इंटरफ़ेस उस वर्ग से जुड़े विधियों और गुणों की घोषणा करता है।
इसके विपरीत, एक प्रोटोकॉल का उपयोग किसी भी विशिष्ट वर्ग से स्वतंत्र विधियों और गुणों की घोषणा करने के लिए किया जाता है।
[जावा इंटरफेस और उद्देश्य-सी प्रोटोकॉल के बीच मतभेदों के संभावित डुप्लिकेट]] (http://stackoverflow.com/questions/990360/differences-between-java-interfaces-and-objective-c-protocols) –