परिदृश्य:
- स्टैक: जावा, स्प्रिंग, हाइबरनेट।
- मॉडल: क्लाइंट-सर्वर एप्लीकेशन।
- पैटर्न: मॉडल-व्यू-कंट्रोलर (MVC)।
सेवा परत वर्गों में तीन व्यवहार होते हैं:
कुछ सेवाओं में विधियों के भीतर व्यावसायिक नियम होते हैं और आवेदन के लिए दृढ़ता का प्रतिनिधित्व करते हैं। पसंद:
EntityManager.save (इकाई);
कुछ सेवाएं बस एक डेटाबेस फ़ंक्शन (पासिंग पैरामीटर) को कॉल करती हैं जैसे:
CallableStatement cls = con.prepareCall ("{call databaseFunction (args)}"));
कुछ सेवाओं में दोनों व्यवहारों के तरीके हैं।
मेरे सवाल:
- क्या एप्लिकेशन सेवाओं को कॉल करने में कोई समस्या है - सीधे - डेटाबेस फ़ंक्शन? क्या यह बुरा व्यवहार नहीं माना जाता है? इस तरह की परियोजना के लिए एक आर्किटेक्चर मॉडल क्या होगा?
- क्या एक ही सेवा में व्यवहार मिश्रण होने में कोई समस्या है? लेनदेन और स्थिरता के रूप में?
- रखरखाव के मामले में, यह एनकैप्सुलेशन डेवलपर को अस्पष्ट बना देता है कि उसे डेटाबेस में कार्यों को भी बदलना चाहिए? इससे कैसे बचा जाए?
- क्या यह परिदृश्य दुनिया भर के अन्य अनुप्रयोगों में होता है या यह सिर्फ एक वास्तुशिल्प त्रुटि थी?