2011-09-04 19 views
14

मान लीजिए कि मैंने कई नए घटकों को परिभाषित किया है - MyComponent1, MyComponent2, ..., जो Ext.Component का विस्तार करता है।मिश्रण बनाम प्लगइन। क्या चुनना है?

अब मैं इन सभी विगेट्स को एक ही कार्यक्षमता के साथ विस्तारित करना चाहता हूं - मैं close बटन जोड़ना चाहता हूं जो MyComponentX.el की शीर्ष-दाएं स्थिति में दिखाई देगा।

मुझे क्या उपयोग करना चाहिए: mixin? plugin? या कुछ और?
और सामान्य रूप से: mixin vs plugin, सबसे अच्छा अभ्यास क्या है?

mixin तुम क्या 'कई inheritence' प्राप्त करने के लिए
plugin क्या आप एक मौजूदा घटक बढ़ाने के लिए उपयोग है का उपयोग है -

+1

मिक्सिन विरासत है लेकिन प्लगइन संरचना है। –

उत्तर

17

मैं के रूप में यह के बारे में सोचना अच्छा लगता है। प्लगइन की जीवन चक्र घटक द्वारा प्रबंधित की जाती है। (Mixin के लिए कोई जीवन चक्र प्रबंधन। आधार वर्ग समकक्ष के रूप में mixin के बारे में सोच)

+0

उत्तर के लिए धन्यवाद। तो, आपको लगता है कि मेरे करीबी बटन उदाहरण के लिए सबसे अच्छा विकल्प क्या है? –

+3

मुझे मिल गया है। सबसे अच्छा विकल्प 'प्लगइन' होगा क्योंकि मैं 'मौजूदा घटक को बढ़ाने के लिए' चाहता हूं। एक बार फिर धन्यवाद। –

+0

इसके अतिरिक्त, क्योंकि ओपी सामान्य रूप में के बारे में पूछा, तो आप केवल वे प्लगइन 'Ext.Component's पर उपयोग कर सकते हैं –

14

Mixin के गुण और कार्यों वर्ग में इंजेक्ट किया जाता है तो वे सीधे वर्ग परिभाषा का हिस्सा हैं।

प्लगइन्स उदाहरण स्तर

1

प्लगइन्स पर जोड़ रहे हैं Ext.Component वर्ग या वर्ग Ext.Component का विस्तार करने के लिए कार्यक्षमता जोड़ देगा। प्लगइन में किसी भी विधि का दायरा प्लगइन में ही है।

मिक्सिन किसी भी अन्य वर्ग में कार्यक्षमता जोड़ने के लिए उपयोग किया जा सकता है। मिक्सिन विधियां सीधे कक्षा में उपलब्ध होंगी।