एक बार प्लगइन लोड करने की समस्या हल हो जाती है (आउटपुट में एमईएफ के माध्यम से .NET में), हल करने का अगला चरण उनके साथ संचार है। सरल तरीका एक इंटरफ़ेस को कार्यान्वित करना और प्लगइन कार्यान्वयन का उपयोग करना है, लेकिन कभी-कभी प्लगइन को केवल एप्लिकेशन के तरीके को विस्तारित करने की आवश्यकता होती है और बहुत सारे एक्सटेंशन पॉइंट हो सकते हैं।एक्सटेंशन/प्लगइन संचार के लिए आर्किटेक्चर
मेरा प्रश्न इस विस्तार बिंदुओं से निपटने के तरीके के बारे में है। मुझे लगता है कि ऐसा करने का अलग अलग तरीकों से देखा है, लेकिन मैं पेशेवरों और हर एक के विपक्ष के बारे में सुनिश्चित नहीं कर रहा हूँ और अगर वहाँ अधिक और बेहतर तरीके यह पूरा करने के हैं:
- घटनाक्रम: सभी सामान को स्थिर घटनाओं को जोड़ने हम "विस्तार योग्य" बनाना चाहते हैं। उदाहरण के लिए, यदि मैं किसी उपयोगकर्ता वर्ग के लिए कस्टम सत्यापन जोड़ना चाहता हूं, तो मैं एक ऑनवालिएशन स्टैटिक इवेंट हैंडलर जोड़ सकता हूं और इसे बनाए जाने पर प्लगइन से ईवेंट जोड़ सकता हूं।
- संदेश: बस और एक संदेश रखना। प्लगइन किसी विशेष संदेश की सदस्यता ले सकता है और कुछ अन्य वर्ग उस संदेश को प्रकाशित करते समय सामान करता है। संदेश में संदर्भ होना चाहिए जिसमें प्लगइन काम कर सकता है। सत्यापन मामले में, तर्क परत उपयोगकर्ता सत्यापन संदेश प्रकाशित करेगी और संदेश प्राप्त होने पर प्लगइन कार्य करेगा।
- इंटरफेस: मेजबान एप्लिकेशन कुछ इंटरफ़ेस को लागू करने वाले सभी प्लगइन को कॉल करने और उन्हें वर्तमान ऑपरेशन का संदर्भ देने के लिए ज़िम्मेदार है। सत्यापन के मामले में, प्लगइन एक वैध (ऑब्जेक्ट संदर्भ) विधि के साथ एक IValidator या IUserValidator लागू कर सकता है।
क्या आपने कभी भी उजागर दृष्टिकोण में से एक उपयोगकर्ता को देखा है? किसने आपके लिए सबसे अच्छा काम किया?
और इससे पहले कि आप पूछें, हमारा आवेदन हमारे क्लाइंट विशिष्ट सामग्री केंद्रित वेब अनुप्रयोगों के निर्माण के लिए एक एक्स्टेंसिबल कोर (उपयोगकर्ता, रोला और सामग्री प्रबंधन) है। एएसपी.नेट एमवीसी पर बनाया गया सब कुछ।
इंटरफेस शायद मेरा दृष्टिकोण होगा, हालांकि यह एप्लिकेशन और इसकी प्लगइन की ज़रूरतों पर निर्भर करता है। लेकिन यह प्लगइन करने का एक बहुत ही साफ तरीका है, और प्लगइन से अपवादों को अलग करना भी आसान होगा। –