डेल्फी 2010 का उपयोग करके मॉड्यूलर प्लग-इन कैसे बनाएं, मुझे मॉड्यूल या प्लग-इन का समर्थन करने के लिए एक प्रोग्राम लिखने की आवश्यकता है। हालांकि थोड़ा सा योगदान हुआ, मान लें कि मेरे पास एक ऐप है जो डेटाफाइल/टेक्स्ट फाइलों को परिवर्तित करता है। यह आउटपुट के रूप में 30 इनपुट प्रारूपों और उन 30 प्रारूपों का समर्थन करेगा। पहली रिलीज शायद इन प्रारूपों में से कुछ को लागू करेगी। मेरी चुनौती यह है कि मैं डेटा संचालित प्रक्रिया प्रवाह चाहता हूं।डेल्फी
उदाहरण के लिए, मान लें कि मेरे पास PARSE_FILE दिनचर्या है। यदि मेरा इनपुट डेटा फ़ाइल प्रारूप 'Format_A' है, तो फिर जब मैं PARSE_FILE को कॉल करता हूं, तो उसे PARSE_FILE_Format_A का उपयोग करना चाहिए, जैसा कि PARSE_FILE दिनचर्या के अन्य 2 9 विभिन्न संस्करणों के विपरीत है।
PARSE_FILE सिर्फ एक उदाहरण है। मेरे पास शायद 60 अलग-अलग सामान्य फ़ंक्शन, LOAD_FILE, GET_DELIMITER, PARSE_FILE इत्यादि होंगे, लेकिन इनमें से प्रत्येक कार्य 30 अलग-अलग प्रारूपों में से प्रत्येक के लिए थोड़ा अलग होगा। मैं किस तकनीक का उपयोग कर सकता हूं ताकि अगर मैं FORMAT_A के साथ एक फ़ाइल लोड कर रहा हूं, तो इनमें से प्रत्येक 60 अलग-अलग सामान्य दिनचर्या इन 60 दिनचर्या के उचित 'संस्करण' का उपयोग करती है?
ध्यान रखें कि मैं सिर्फ 5 इनपुट स्वरूपों के साथ शुरू कर रहा हूँ, और बाद में अन्य प्रारूपों जोड़ देगा, तो मैं इस "मानचित्रण 'को परिभाषित करने केन्द्र का एक तरीका की जरूरत है, इसलिए जहां भी इन दिनचर्या मेरी कोड भर में इस्तेमाल कर रहे हैं, दिनचर्या का उचित संस्करण का उपयोग किया जाएगा, भले ही मैं जेनेरिक वर्जन कहते हैं।
मैं इंटरफेस के साथ जाना चाहते हैं, एक IMyPlugin इंटरफेस को परिभाषित, वर्ग (ते) है कि इस इंटरफ़ेस को लागू है, प्रत्येक * .dll एक समारोह "RegisterPlugin (AInterface: IMyPlugin)" कहा जाता है का निर्यात करता है, जब अनुप्रयोग शुरू होता है, यह स्कैन करता है फाइलों के लिए "प्लगइन फ़ोल्डर", प्रत्येक "प्लगइन फ़ाइल" (डीएलएल) के लिए, आप इसे लोड करने का प्रयास करते हैं और प्लगइन लोड होने पर इसे "रजिस्टरप्लगिन" फ़ंक्शन कहते हैं, आप डेटा में हेरफेर करने के लिए इंटरफ़ेस पर विधियों को कॉल कर सकते हैं। मेरे 2 सेंट (: – ComputerSaysNo
आप या तो डीएलएल और COM- संगत 'IInterface' प्रकार (COM-standardized डेटा प्रकारों के साथ जाते हैं, ताकि जब आप EXE और DLL के पास अलग-अलग कंपाइलर संस्करण या विकल्प हों तो आप सबकुछ क्रैश नहीं करेंगे) या आप जाते हैं बीपीएल के साथ, वीसीएल की तरह ही बनाया जाता है। जेडीआईवीसीएल के पास कुछ सरल प्लगइन इंफ्रास्ट्रक्चर है, लेकिन यह आधार रॉकेट साइंस नहीं होगा। हार्ड आईडी प्लानिंग एपीआई और यह हमेशा आपका रचनात्मक काम है। 1 दृष्टिकोण के बारे में अच्छा लेख है, अगर आप कर सकते हैं इसे Google अनुवाद के माध्यम से पढ़ें: http://www.gunsmoker.ru/2011/12/delphi.html –