6

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

  • RDBMS से डेटा में हेरफेर (mysql मुख्य रूप से) CRUD संचालन
  • (मैं उत्पन्न autoincrement या डेटा इंजन की आपूर्ति या पास्कल कोड का उपयोग करना चाहिए)
  • तालिका संबंधों तार्किक हो सकता है आईडी पीढ़ी के साथ काम (कोई रेफेरेंन्शिअल सत्यनिष्ठा प्रयोग किया जाता है) या
  • डेटा व्यापार वस्तु और व्यापार तर्क परिवर्तित किया जाना चाहिए डेटा मॉडल से वस्तु संबंधों उत्पन्न करने की क्षमता के लिए नहीं
  • जरूरत
  • चालाकी से
  • मौजूदा GUI घटक या फ्रीवेयर लोगों

इस्तेमाल किया जाना चाहिए क्या मैं जरूरत है:

  • कुछ मार्गदर्शक तकनीक/बुनियादी नमूना कोड/आवेदन लेआउट (ऐसी इकाइयों वर्गों-मॉड्यूल-निर्देशिका के रूप में साथ सुझाव) ... OOP में एक विशेषज्ञ नहीं होने के नाते मैं भ्रमित हो जब मैं एक ट्यूटोरियल के साथ वर्ग पदानुक्रम
  • एक सरल ढांचे डिजाइन करने के लिए है
  • या यहां तक ​​कि अपने खुद के दैनिक कोड/रूपरेखा/दृष्टिकोण

उत्तर

2

ओपन सोर्स InstantObjects पर अपने हाथों को आजमाएं और आप हमेशा डेल्फी में सभी प्रकार के डेटाबेस प्रोग्रामिंग के लिए इसका उपयोग करना चाहेंगे।

आईओ में आपको अपने इंटरफ़ेस में संपूर्ण डेटा संरचना को परिभाषित करना होगा और फिर यह आपके लिए आवश्यक कोड उत्पन्न करेगा।

बस इसे आज़माएं।

आईडी जनरेशन ट्रस्ट MySQL के लिए आपके लिए एक ऑटो वृद्धि आईडी उत्पन्न करने के लिए। समय कोडिंग मत करो।

11

चूंकि आप डेल्फी का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप डेटामोड्यूल देखें। यह वह जगह है जहां आप अपने डेटाबेस एक्सेस घटकों और तर्क डालते हैं।

सादे "इकाई" फ़ाइलों में कक्षाएं रखें।

चीजों को करने के लिए यूआई को इन दोनों से बात करें। आप फ़ॉर्म पर सीधे डेटाबेस एक्सेस घटकों का उपयोग कर सकते हैं, लेकिन यह "केवल प्रदर्शन" मोड के रूप में और डेटा पर संचालन करने के लिए डेटामैड्यूल का उपयोग करके किया जाता है। (आप बुनियादी ऐप्स के लिए फॉर्म पर सब कुछ कर सकते हैं, लेकिन यदि आप ऐप को मॉड्यूलर करना चाहते हैं, तो इसे अलग रखना समझदार है)।

4

इस तरह के अलगाव को लागू करने में मदद करने का एक आसान तरीका है अपने व्यापार तर्क के लिए यूनिट परीक्षण लिखना। अन्य (पर्याप्त) लाभों के अलावा, कोड टेस्टेबल बनाने का मतलब है कि यह (जानबूझकर या अन्यथा) यूआई को कसकर जोड़ नहीं सकता है।

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

व्यवसाय तर्क और डेटा (यहां तक ​​कि आंशिक रूप से) के साथ, यूआई बहुत अधिक आगे है। और रखरखाव योग्य।

2

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

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

3

व्यक्तिगत तौर पर मैं व्यापार मॉडल के लिए tiopf का उपयोग tiOPF

3

पर एक नजर डालें। Tiopf डेटा एक्सेस परत की आपूर्ति करता है। भंडार से नवीनतम कोड में मॉडल प्रदर्शित करने के लिए एमवीसी के समान मॉडल-गुई-मध्यस्थ ढांचा शामिल है। यह आपको मानक डेल्फी घटकों का उपयोग करके अपना डेटा प्रदर्शित करने की अनुमति देता है।

टियोपफ़ भी कई आईडी जनरेटर (guids, 32 बिट और 64 बिट पूर्णांक इत्यादि) को जोड़ता है।

यदि आप टीओपीएफ में रूचि रखते हैं, तो मेरा सुझाव है कि आप मेरे overview को देखकर शुरू करें। फिर समाचार समूह को किसी भी प्रश्न का निर्देश दें।

1

मुझे मॉडल-व्यू-कंट्रोलर (जो पर्यवेक्षक/पर्यवेक्षण पैटर्न का विस्तार है) पर एक नज़र डालेगा। इसका अर्थ यह है कि 'व्यू' (यानी यूआई) केवल डेटा को अपडेट करने के बारे में जानता है, और फिर डेटा अपडेट होने का जवाब देता है। मॉडल (या पर्यवेक्षण) जानता है कि डेटा में हेरफेर कैसे करें और यह बताएं कि इसे अपडेट किया गया है। इसका मतलब यह है कि आप डेटा प्रदाता को बदलने के बिना यूआई को प्रतिस्थापित कर सकते हैं, और इसके विपरीत।

Google पर एक खोज करें, क्योंकि डेल्फी के लिए इसके बहुत सारे उदाहरण हैं (लेकिन जावा/सी # आदि के लिए ज्यादा नहीं)