बाइनरी फ़ाइल डेटा को पार्स करने और डेटाबेस में संग्रहीत करने के लिए डिज़ाइन पैटर्न

क्या कोई बाइनरी डेटा फ़ाइल लेने, ऑब्जेक्ट्स में इसके हिस्सों को पार्स करने और परिणामी डेटा को डेटाबेस में संग्रहीत करने के लिए डिज़ाइन पैटर्न की अनुशंसा करता है?

मुझे लगता है कि एक समान पैटर्न का उपयोग एक्सएमएल या टैब-सीमेटेड फाइल लेने के लिए किया जा सकता है और इसे अपने प्रतिनिधि ऑब्जेक्ट्स में पार्स कर सकता है।

एक आम डेटा संरचना में शामिल होंगे:

(शीर्षलेख) (DataElement1) (DataElement1SubData1) (DataElement1SubData2) (DataElement2) (DataElement2SubData1) (DataElement2SubData2) (EOF)

मुझे लगता है कि एक अच्छे डिजाइन में फ़ाइल प्रकार या शीर्षलेख में शामिल कुछ परिभाषित मेटाडेटा के आधार पर पार्सिंग परिभाषा को बदलने का एक तरीका शामिल होगा। तो एक फैक्टरी पैटर्न पार्सर भाग के लिए समग्र डिज़ाइन का हिस्सा होगा।

0
ro fr bn

4 उत्तर

  1. जो भी तकनीकें ध्यान में आती हैं, उसका उपयोग करके बस अपनी फ़ाइल पार्सर लिखें
  2. यह सुनिश्चित करने के लिए कि आपके सभी किनारे के मामलों को कवर किया गया है
  3. इसके लिए कई यूनिट परीक्षण लिखें

एक बार ऐसा करने के बाद, आपको वास्तव में समस्या/समाधान का उचित विचार होगा।

अभी आपके पास अपने सिर में चारों ओर तैरते सिद्धांत हैं, जिनमें से अधिकांश गुमराह हो जाएंगे।

चरण 3: निर्दयतापूर्वक रिफैक्टर। आपका लक्ष्य आपके कोड का लगभग आधा हटाना चाहिए

आप पाएंगे कि अंत में आपका कोड या तो मौजूदा डिज़ाइन पैटर्न जैसा दिखता है, या आपने एक नया निर्माण किया होगा। फिर आप इस प्रश्न का उत्तर देने के लिए योग्य होंगे :-)

0
जोड़ा

Lex और YACC का उपयोग करें। जब तक आप अगले दस वर्षों को विशेष रूप से इस विषय पर समर्पित न करें, वे हर बार बेहतर और तेज़ कोड तैयार करेंगे।

0
जोड़ा

मैं ओरियन एडवर्ड्स से पूरी तरह से सहमत हूं, और आमतौर पर जिस तरह से मैं समस्या से संपर्क करता हूं; लेकिन हाल ही में मैं पागलपन के लिए कुछ पैटर्न (!) देखना शुरू कर दिया है।

अधिक जटिल कार्यों के लिए मैं आमतौर पर कुछ दुभाषिया (या एक रणनीति ) जो कुछ बिल्डर (या फैक्ट्री ) के प्रत्येक भाग को बनाने के लिए डेटा।

स्ट्रीमिंग डेटा के लिए, संपूर्ण पार्सर किसी स्ट्रीम ऑब्जेक्ट से अपनाने के लिए एडाप्टर जैसा कुछ दिखाई देगा। एक ऑब्जेक्ट स्ट्रीम (जो आमतौर पर केवल एक कतार है)।

आपके उदाहरण के लिए शायद पूर्ण डेटा संरचना (सिर से ईओएफ) के लिए एक निर्माता होगा जो आंतरिक डेटा तत्वों (दुभाषिया द्वारा खिलाया गया) के लिए आंतरिक रूप से बिल्डरों का उपयोग करता है। एक बार ईओएफ का सामना करने के बाद एक वस्तु उत्सर्जित हो जाएगी।

हालांकि, कुछ फैक्ट्री फ़ंक्शन में स्विच स्टेटमेंट में बनाए गए ऑब्जेक्ट्स शायद कम कम कार्यों के लिए सबसे आसान तरीका है। साथ ही, मुझे अपने डेटा-ऑब्जेक्ट्स को अपरिवर्तनीय रखना पसंद है क्योंकि आप कभी नहीं जानते कि कोई आपके गले में समेकन को कबूतर करता है :)

0
जोड़ा

रणनीति पैटर्न शायद वह है जिसे आप देखना चाहते हैं। फ़ाइल पार्सिंग एल्गोरिदम की रणनीति है।

फिर आप डेटाबेस सम्मिलन के लिए एक अलग रणनीति चाहते हैं।

0
जोड़ा