मैं अपनी वेबसाइट पर कार्यक्षमता जोड़ रहा हूं जो एमएसएमक्यू का उपयोग करके असीमित रूप से लंबी चल रही प्रक्रिया करता है। इस ansynch करना, इसका मतलब है कि जब हमारे अनुरोध पूरा हो जाते हैं तो हमें उपयोगकर्ताओं को सूचित करने की आवश्यकता है। कमांड पैटर्न का उपयोग करके, मैंने एक इंटरफ़ेस बनाया * जिसे इन्टोटिफ़ कहा जाता है और उसे संदेश वर्ग में लिखा गया है, इसलिए संदेश प्रसंस्करण कक्षा संदेश के इनोटिफ़ ऑब्जेक्ट पर GiveNotice() को कॉल कर सकती है। पहला कार्यान्वयन, ईमेल नोटिफ़ाई, अपेक्षा से अधिक कठिन था, क्योंकि मुझे पता चला कि मेलमेसेज को क्रमिक नहीं है, लेकिन यह जा रहा है।एन-टियर आर्किटेक्चर में डेटाबेस-कार्यक्षमता ऑब्जेक्ट्स को कार्यान्वित करना?
अब मैं एक नए कंक्रीट नोटिफ़ायर, डीबीएनओटीआईटी पर काम कर रहा हूं, जो कुछ प्रकार के एसपी को कॉल करेगा और मुख्य लेनदेन डेटाबेस में स्थिति अपडेट करेगा। मैं उसमें उलझ गया हूं कि हम पहले से बनाए गए डीएएल आर्किटेक्चर का पुन: उपयोग करना चाहते हैं, लेकिन इनोटिफी मॉडल प्रोजेक्ट का सदस्य है, जो डीएएल से अधिक मौलिक है।
हमारे पदानुक्रम इस तरह दिखता है: आम> मॉडल> दाल> बाल
यहाँ स्तरों के बारे में अधिक विस्तार से बताया। ध्यान रखें, मैंने इसे विरासत में प्राप्त किया है: आम सभी "उपयोगिता" कार्यों के लिए ज़िम्मेदार है जो एप्लिकेशन में कई स्थानों का उपयोग किया जाता है, कॉन्फ़िगरेशन सेटिंग्स तक पहुंचने जैसी चीजें, तारों को पार्सिंग, गैर-व्यावसायिक संबंधित कार्यक्षमता।
मॉडल व्यावसायिक वस्तुएं हैं, कुछ लोग डेटा ट्रांसफर ऑब्जेक्ट्स, गेटर्स और सेटर्स के संग्रह कहलाते हैं। मैंने इस परत पर कुछ "स्मारक" जोड़े हैं, लेकिन उस ऑब्जेक्ट के लिए केवल व्यावसायिक नियम आंतरिक हैं, जैसे "एक आइटम का नाम अल्फान्यूमेरिक कैरेक्टर से शुरू होना चाहिए।"
डीएएल डेटा एक्सेस लेयर है, सिद्धांत रूप में, यहां जो भी होता है वह मॉडल ऑब्जेक्ट्स डेटाबेस में और बाहर ले जाया जाता है।
बीएएल बिजनेस लेयर है; सिद्धांत रूप में, वस्तुओं के संपर्क को नियंत्रित करने वाले व्यवसाय नियम लागू किए जाते हैं (यानी "एक फॉर्म में कम से कम दो आइटम होना चाहिए।")।
तो अधिसूचना इंटरफ़ेस को अधिसूचना की विधि स्वतंत्र रूप से भिन्न होने की अनुमति देने के लिए एक अमूर्त परिभाषित किया गया है (यानी ईमेल, TXT, ट्विटर, आदि)। यह सिस्टम के लिए मौलिक है, इसलिए मैंने इसे मॉडल स्तर पर बनाया है, जो डीएएल टियर से स्वतंत्र है। हालांकि, मैं INotify का एक नया ठोस कार्यान्वयन तैयार कर रहा हूं जिसका अधिसूचना तरीका डेटाबेस में एसपी को कॉल करना है।
क्या किसी और ने किसी व्यापारिक वस्तु से निपटाया है जिसका उद्देश्य डेटाबेस के साथ बातचीत करना है, और आप अपने एन-स्तरीय आर्किटेक्चर में इसे कैसे व्यवस्थित करते हैं?
लिंक से एसक्यूएल का उपयोग करने के लिए मुझे बताए जाने से पहले, बहुत धन्यवाद। यह एक तकनीकी प्रश्न नहीं है (मैं यह कैसे कर सकता हूं), यह एक डिज़ाइन प्रश्न है (मुझे यह कैसे करना चाहिए)।
मुझे लगता है कि एक स्टैक एक्सचेंज साइट भाषा-स्वतंत्र डिजाइन प्रश्नों के इस प्रकार पर केंद्रित है, इसलिए मैं इसे कॉपी करने जा रहा हूं।
* नाम पर इंटरफ़ेस केवल, के बाद से मैं वास्तव में इन वस्तुओं को क्रमानुसार करना चाहते हैं, मैं इसे एक अमूर्त वर्ग करना था। –
मैं आपके पदानुक्रम के बारे में उलझन में हूं। मॉडल और बीएएल क्या जिम्मेदार हैं? मैंने बिजनेस एक्सेस लेयर के लिए खड़े होने के लिए बीएएल लिया लेकिन फिर मॉडल जगह से बाहर निकल गया। कोड में मैंने देखा है कि मॉडल आमतौर पर सबसे सार है और ऊपर (उपयोग) बैठता है या बिजनेस लेयर का हिस्सा है ... इसके अलावा, यदि मॉडल डीएएल से अधिक मौलिक है, तो कक्षाओं का उपयोग करके डीएएल के साथ क्या समस्या है मॉडल पर तरीकों से और कॉलिंग? –
ओह, और यदि आपको पता नहीं था, तो आपको टिप्पणियों में जानकारी जोड़ने की आवश्यकता नहीं है, आप बस अपना प्रश्न संपादित कर सकते हैं ... –