2016-11-03 23 views
17

व्यक्तिगत रूप से मैं सरल लॉजिकल सहसंबंधों के लिए स्विफ्ट में प्रतिनिधि पर कॉलबैक पसंद करता हूं, क्योंकि यह बहुत सीधी-आगे और समझने में आसान है। साथ ही, कुछ प्रतिनिधियों को पसंद करते हैं, क्योंकि प्रतिनिधिमंडल अन्य भाषाओं में एक लोकप्रिय पैटर्न है, जैसे सी #।आईओएस स्विफ्ट: क्लोजर (कॉलबैक) बनाम प्रतिनिधि, किस का उपयोग करने के लिए?

कुछ विचार विमर्श मैं ऑनलाइन पाया हैं: "तुम क्यों स्विफ्ट में प्रतिनिधियों उपयोग नहीं करना चाहिए"

1. https://medium.cobeisfresh.com/why-you-shouldn-t-use-delegates-in-swift-7ef808a7f16b#.hqb7zrc1v

2. एप्पल कॉलबैक पैटर्न https://www.reddit.com/r/swift/comments/2ces1q/closures_vs_delegates/

3. ब्लॉक या प्रतिनिधियों के बारे में अधिक अपना ध्यान केंद्रित स्थानांतरण किया जाता है? http://blog.stablekernel.com/blocks-or-delegates/

इन चर्चाओं को पढ़ने के बाद, मैं वरीयता पर अभी भी निराश हूं। मैं जानना चाहता हूं कि बंदियों का उपयोग करने के लिए बेहतर कब और प्रतिनिधियों का उपयोग करने के लिए बेहतर कब होता है? और कारण?

धन्यवाद!

+0

चूंकि आपके प्रश्न का कोई अच्छा उद्देश्य उत्तर नहीं है और जल्द ही बंद हो जाएगा, बस उस समस्या का उपयोग करें जो किसी दिए गए समस्या को हल करता है। – rmaddy

+0

@rmaddy आपकी प्रतिक्रिया के लिए धन्यवाद। मैं प्रश्न अधिक विशिष्ट होने के लिए अद्यतन कर दूंगा। यह वास्तव में वही प्रकृति है जैसे इस तरह के प्रश्न: http://stackoverflow.com/questions/27703913/which-c-sharp-pattern-has-better-performance-to-avoid-duplicated-event-handlers – RainCast

उत्तर

16

(एक राय आधारित प्रश्न के लिए राय के आधार जवाब)

सवाल नहीं होना चाहिए जो बेहतर है, यह समस्या हल करने के लिए मैं कोशिश कर रहा हूँ के लिए सबसे अच्छा समाधान क्या किया जाना चाहिए।

मेरा सरल नियम: अगर किसी को एक इंटरफ़ेस के रूप में एक फ़ंक्शन की आवश्यकता होती है, तो आमतौर पर कॉलबैक एक अच्छा समाधान होता है। यदि एक से अधिक फ़ंक्शन की आवश्यकता होती है, खासकर जब किसी ऑब्जेक्ट के मूल कार्य के लिए आवश्यक होती है, तो प्रतिनिधि शायद एक बेहतर समाधान है।

हमेशा की तरह यह विशिष्ट स्थिति पर निर्भर करता है, लेकिन पूर्ण बयान वास्तविक दुनिया के उपयोग में शायद ही कभी काम करते हैं।

+0

मुझे लगता है कि यह है एक अच्छा मुद्दा धन्यवाद! – RainCast

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