2008-09-19 10 views
5

मैं भाषा-विशिष्ट उत्तरों के लिए बहुत कुछ नहीं देख रहा हूं, प्लगइन सिस्टम को लागू करने के लिए केवल सामान्य मॉडल (यदि आप जानना चाहते हैं, तो मैं पायथन का उपयोग कर रहा हूं)। मेरे पास मेरा अपना विचार है (कॉलबैक पंजीकृत करें, और यह इसके बारे में है), लेकिन मुझे पता है कि अन्य मौजूद हैं। आम तौर पर क्या उपयोग किया जाता है, और क्या उचित है?प्लगइन सिस्टम को लागू करने के कुछ अलग तरीके क्या हैं?

प्लगइन सिस्टम से आपका क्या मतलब है? क्या निर्भरता इंजेक्शन और आईओसी कंटेनर एक अच्छे समाधान की तरह लगता है?

मेरा मतलब है, ठीक है, आधार प्रोग्राम में कार्यक्षमता डालने के बिना इसे बदलने के लिए एक तरीका है। जब मैं बाहर निकलता हूं तो मैं इसे परिभाषित करने का इरादा नहीं रखता था। निर्भरता इंजेक्शन विशेष रूप से उपयुक्त है जो मैं कर रहा हूं, के लिए उपयुक्त नहीं है, लेकिन मुझे उनके बारे में बहुत कुछ पता नहीं है।

+0

मैं इंटर-प्लगइन संचार को संभालने के तरीके पर कुछ चर्चा देखना चाहता हूं। क्या कोई सार्वजनिक घटनाओं का उपयोग करता है? विषय रिक्त स्थान? –

+0

प्लगइन सिस्टम से आपका क्या मतलब है? क्या निर्भरता इंजेक्शन और आईओसी कंटेनर एक अच्छे समाधान की तरह लगता है? –

उत्तर

1

वहाँ Software Engineering Radio है, जो आप में रुचि हो सकती का एक बहुत अच्छा episode है।

भविष्य में संदर्भ के लिए, मैं यहाँ reproduced है "Rules for Enablers" (alternative link) एरिक गामा, केंट बैक द्वारा उत्कृष्ट Contributing to Eclipse में दी गई ।

  • निमंत्रण नियम - जब भी संभव हो, दूसरों को अपने योगदान के लिए योगदान करते हैं।
  • आलसी लोडिंग नियम - योगदान केवल तभी लोड होते हैं जब उनकी आवश्यकता होती है।
  • सुरक्षित प्लेटफ़ॉर्म नियम - एक विस्तार बिंदु के प्रदाता के रूप में, आपको विस्तारकों के हिस्से पर दुर्व्यवहार के खिलाफ स्वयं को सुरक्षित रखना होगा।
  • फेयर प्ले नियम - सभी क्लाइंट एक ही नियम से खेलते हैं, यहां तक ​​कि मुझे भी।
  • स्पष्ट विस्तार नियम - स्पष्ट रूप से घोषणा करें कि एक मंच को बढ़ाया जा सकता है।
  • विविधता नियम - एक्सटेंशन अंक एकाधिक एक्सटेंशन स्वीकार करते हैं।
  • अच्छा बाड़ नियम - अपने कोड के बाहर नियंत्रण पास करते समय, अपने आप को सुरक्षित रखें।
  • स्पष्ट API नियम - एपीआई को आंतरिक से अलग करें।
  • स्थिरता नियम - एक बार जब आप किसी को योगदान देने के लिए आमंत्रित करते हैं, नियमों को नहीं बदलते हैं।
  • रक्षात्मक एपीआई नियम - केवल उस एपीआई को प्रकट करें जिसमें आप आत्मविश्वास रखते हैं, लेकिन अधिक एपीआई प्रकट करने के लिए तैयार रहें क्योंकि ग्राहक इसके लिए पूछते हैं।
1

पायथन में आप setuptools और pkg_resources द्वारा प्रदान की गई प्रविष्टि-बिंदु प्रणाली का उपयोग कर सकते हैं। प्रत्येक एंट्री पॉइंट एक ऐसा फ़ंक्शन होना चाहिए जो प्लगइन - नाम, लेखक, सेटअप और टियरडाउन फ़ंक्शंस इत्यादि के बारे में जानकारी देता है।

2

एक साधारण प्लगइन आर्किटेक्चर प्लगइन को कार्यान्वित करने के सभी तरीकों के साथ प्लगइन इंटरफ़ेस को परिभाषित कर सकता है। प्लगइन एप्लिकेशन से ईवेंट को संभालता है, और चीजों को पूरा करने के लिए एप्लिकेशन के मानक कोड, मॉडल ऑब्जेक्ट इत्यादि का उपयोग कर सकता है। असल में एएसपी.नेट फॉर्म के समान ही होता है, सिवाय इसके कि आप कार्यान्वित करने के बजाय ओवरराइड कर रहे हैं।

किसी ने मुझे यह हिस्सा नहीं सिखाया, और मैं कोई विशेषज्ञ नहीं हूं, लेकिन मुझे लगता है: सामान्य रूप से एक प्लगइन अपने आवेदन से कम स्थिर होगा, इसलिए आवेदन हमेशा नियंत्रण में होना चाहिए और केवल प्लगइन आवधिक अवसरों को कार्य करने के अवसर देना चाहिए । यदि कोई प्लगइन ऑब्जर्वर पंजीकृत कर सकता है, तो प्रतिनिधि को कॉल करने की कोशिश की जानी चाहिए।

0

कैसे abstract factory के बारे में? आपका आधार कार्यक्रम परिभाषित करता है कि अमूर्त अवधारणाएं एक दूसरे के साथ कैसे बातचीत करती हैं, लेकिन कॉलर को कार्यान्वयन प्रदान करना होता है।

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

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