2016-04-28 6 views

उत्तर

30

यह एक बड़ा सवाल है। आदर्श रूप से एक इंटरफ़ेस और ऑब्जेक्ट प्रकार के बीच कोई अंतर नहीं होगा। लागू होने के रूप में, उनके बीच कुछ हद तक (अक्सर सूक्ष्म) मतभेद हैं।

सबसे बड़ा अंतर यह है कि फ्लो एक इंटरफ़ेस पर घोषित विधियों को "केवल पढ़ने के लिए" मानता है। यह उपप्रकारों को covariant w.r.t. होने की अनुमति देता है। विधियों, जो विरासत पदानुक्रम के साथ एक बहुत ही आम पैटर्न है।

समय में, मैं प्रवाह इन अवधारणाओं को एकजुट देखना चाहेंगे, लेकिन जब तक तो यहाँ इंटरफेस और वस्तु प्रकार के बीच चुनने के लिए अंगूठे का मेरा नियम है:

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

आशा है कि इससे मदद मिलती है!

+0

अच्छा जवाब, धन्यवाद! – vitorbal

+0

क्या आप इस पर विस्तार कर सकते हैं: 'यह उपप्रकारों को covariant w.r.t. होने की अनुमति देता है। methods'? – CMCDragonkai

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