जेएसपी के बाहर व्यापार तर्क रखने के क्या फायदे हैं, क्योंकि जेएसपी मुख्य रूप से प्रेजेंटेशन के लिए हैं? हम अभी भी जेएसपी के अंदर लिखे गए व्यवसाय तर्क को देखते हैं, इसलिए मुझे यह जानना आवश्यक था कि जेएसपी से व्यवसाय तर्क को स्थानांतरित करके हमें क्या लाभ मिलता है।जेएसपी से व्यापार तर्क क्यों हटाया जाना चाहिए?
उत्तर
MVC का मुख्य लाभ यह आप कई दृश्य हो सकता है और स्वच्छ और अलग वास्तुकला & Simplicity
उपयोगिता
मान लीजिए कल आपको डेस्कटॉप ऐप पर चलने वाला एक ही ऐप चाहिए। तो आप बस दृश्य बदल सकते हैं।
Testability
आप इकाई आपकी सेवा तरीकों का परीक्षण कर सकते हैं, लेकिन देखने से आप बस नहीं इकाई परीक्षण तर्क कर सकते हैं।
अनुरक्षणीयता
यह सेवा तरीकों से कोड समझने में आसान है, यह भी हम इसे/रिलीज सेवा एपीआई बदल सकते हैं और यह आसानी से बनाए रखने के
संस्करण क्षमता
कर सकते हैंआप अपने एपीआई को संस्करण दे सकते हैं और मानक बनाए रख सकते हैं मुद्दों/अपडेट करने के लिए संबंधित अगर आप सेवा एपीआई का उपयोग करने के बजाय तर्क के लिए देखने
देखें इसके अलावा
- यह हो जाता है पुन: प्रयोज्य
- यह डिजाइनरों से दूर ले जाता है यह (इसलिए यह उनके रास्ते में नहीं मिलता है, और वे डॉन (दोनों अन्य अनुप्रयोगों के लिए, और अलग-अलग दृश्यों (जैसे एक JSON एपीआई) के लिए) 'टी गलती से इसे तोड़ने)
मैं डॉक्स यकीन नहीं है लेकिन यह हो सकता है कारण:
इसके लिए पुन: प्रयोज्यता उद्देश्य।
जेएसपी का उपयोग केवल प्रस्तुति उद्देश्य और हमारे एचटीएमएल डिजाइनर के लिए किया जाना चाहिए, जो बाद में डिज़ाइन करते हैं, पृष्ठ जावा कोडिंग से अवगत नहीं है, यह आरामदायक नहीं होगा। और सर्वलेट में सभी buiseness तर्क लिखने कोड पुन: प्रयोज्य करने देता है।और जेएसपी पेज में buiseness तर्क लिखने के लिए कुछ अन्य तरीके हैं जैसे स्क्रिप्लेट का उपयोग करना। तो नौकरी कम लाभ और अतिरिक्त काम के साथ क्यों करें।
अब अगर हम व्यापार तर्क के लिए jsp पेज का उपयोग कर रहे तो स्क्रिप्टलेट JSP पेज जो व्यापार इकाई के लिए सर्वलेट की भारी maintaince cost.The अलग घोषणा की ओर जाता है सब से ऊपर से बचने जाएगा अंदर अधिक हो जाएगा।
यह Separation of Concerns डिज़ाइन सिद्धांत का एक विशिष्ट अनुप्रयोग है।
चिंताओं को अलग करके, यानी उनमें से प्रत्येक के लिए अलग लॉजिकल इकाइयों (मुख्य रूप से कक्षाएं) बनाकर आप किसी विशेष इकाई को बदलने के कारणों की संख्या को कम करते हैं।
एसओसी का एक अन्य लाभ इन इकाइयों के औसत आकार और जटिलता को कम कर रहा है। यह बदले में आपके सॉफ़्टवेयर को समझने और बदलने के लिए आसान बनाता है।
इसके अलावा छोटी तार्किक इकाइयां उन्हें यूनिट परीक्षण के लिए बहुत आसान बनाती हैं, एकीकरण परीक्षण में नकली करना और कार्यान्वयन में बदलाव के बाद परीक्षणों को ठीक करना आसान बनाता है।
मैं यहां पोस्ट किए गए सभी अच्छे लोगों के लिए एक और कारण जोड़ूंगा।
क्लाइंट प्रौद्योगिकी हर समय बदल रही है। उपयोगकर्ता डेस्कटॉप, ब्राउज़र या मोबाइल एप के माध्यम से नहीं आना चाहते हैं; वे हर समय, उन सभी का उपयोग करना चाहते हैं। इसलिए यदि आप एक प्रकार की यूजर इंटरफेस तकनीक में बिजनेस लॉजिक एम्बेड करते हैं, तो आपको शायद इसे अन्य सभी में डुप्लिकेट करना होगा। यह रखरखाव, पुन: प्रयोज्यता, और नए व्यापार तर्क जोड़ने के लिए बुरा है।
आप यूआई तकनीक को बदलने का फैसला करते हैं क्योंकि आप अपने ऐप को दोबारा लिखना नहीं चाहते हैं।
यह सुरक्षा के लिए भी बेहतर है। यदि ब्राउज़र तर्क ब्राउज़र पर जाता है, तो एक मौका है कि उपयोगकर्ता कोड देख सकते हैं और यह पता लगा सकते हैं कि आप क्या कर रहे हैं।
तो आप सर्वर के पक्ष में व्यावसायिक तर्क रखने से बेहतर हैं।
अन्य सहकर्मियों द्वारा पोस्ट किए गए अच्छे कारणों को जोड़ने के लिए और विशेष रूप से "व्यापार तर्क जेएसपी से बाहर ले जाना चाहिए"।
काम पर संक्षेप में हमारे पास बहुत सारे जेएसपी थे जहां व्यापार तर्क खत्म हो गया था और यह बहुत गन्दा दिख रहा था। सत्र/अनुरोध से ऑब्जेक्ट प्राप्त करने और कुछ चेक करने के लिए तर्क था। जेएसपी में कुछ स्थितियों के आधार पर एक सरल उदाहरण विभिन्न पेज शीर्षकों का निर्माण है।
इस तर्क को हमारे अंत में कैसे स्थानांतरित किया गया था, एक पृष्ठ बिल्डर/संगीतकार ऑब्जेक्ट पेश करना था जो किसी विशेष पृष्ठ को बनाने के लिए सभी जरूरी विवरण लेता है और पृष्ठ बीन ऑब्जेक्ट में सभी सही फ़ील्ड को चेक करता है और सेट करता है। इस पृष्ठ बीन ऑब्जेक्ट को फिर अनुरोध के लिए सेट पर सेट किया गया है इसका मतलब है कि जेएसपी पर आपके पिछले तर्क को अब पेज बिल्डर/संगीतकार ऑब्जेक्ट में ले जाया गया है और फिर सबसे महत्वपूर्ण बात यह है कि आप परीक्षण के लिए इकाई परीक्षण लिख सकते हैं! यदि सही मूल्य पृष्ठ बीन में सेट हैं।
final SimplePageBuilder pageBuilder = new SimplePageBuilder(object1);
request.setAttribute("TestBean", pageBuilder.buildPage());
buildPage विधि पेज सेम वस्तु वापस आ जाएगी और jsp में एक सरल उदाहरण getTitle बस शीर्षक (के रूप में तर्क पृथक है पढ़ने में आसान) लौट आते हैं।
व्यवसाय तर्क को प्रस्तुतिकरण तर्क से अलग किया गया है, तो वेब अनुप्रयोग का पुन: उपयोग करना और बनाए रखना बेहतर है।
मान लीजिए कि मेरे पास 3 जेएसपी पेज हैं, प्रत्येक को कुछ आम व्यावसायिक तर्क की आवश्यकता होती है। यदि मैं जेएसपी पृष्ठों के अंदर व्यापार तर्क डालता हूं, तो कोड की डुप्लिकेट होगी।
- 1. क्या डोमेन या डोमेन में व्यापार तर्क रखा जाना चाहिए?
- 2. हमेशा नए द्वारा हटाया जाना चाहिए?
- 3. MVC व्यापार तर्क संगठन
- 4. जावा बीन्स में व्यापार तर्क रखें?
- 5. क्या इन तर्कों को जोड़ा या हटाया जाना चाहिए?
- 6. व्यापार और अनुप्रयोग तर्क?
- 7. व्यापार तर्क परत
- 8. व्यापार तर्क परत प्राधिकरण और प्रमाणीकरण लागू करना चाहिए?
- 9. भंडार में जटिल व्यापार तर्क
- 10. तर्क अपवाद यूनिट परीक्षण किया जाना चाहिए?
- 11. सत्यापन तर्क कहां लागू किया जाना चाहिए?
- 12. कब हटाया जाना चाहिए एक gcnew आवंटित वस्तु पर बुलाया जाना चाहिए?
- 13. पॉप() को तर्क क्यों देना चाहिए?
- 14. रिपोजिटरी पैटर्न और व्यापार तर्क
- 15. यूआई परत से व्यापार परत में मुझे क्या लौटना चाहिए?
- 16. django मॉडल = व्यापार तर्क + डेटा का उपयोग? या डेटा एक्सेस परत django मॉडल से अलग किया जाना चाहिए?
- 17. मुझे अधिसूचना पर्यवेक्षक को कहां हटाया जाना चाहिए?
- 18. वसंत/जेएसपी में, प्रारूपण कहाँ किया जाना चाहिए?
- 19. डब्ल्यूसीएफ/क्लाइंट ऐप्स - व्यवसाय तर्क कहां जाना चाहिए?
- 20. निर्देशों का उपयोग करके अनावश्यक सी # को क्यों हटाया जाना चाहिए?
- 21. मेरे व्यापार तर्क को मेरी डेटा परत से कैसे इंटरैक्ट करना चाहिए?
- 22. initWithFormat कब होगा: तर्क: उपयोग किया जाना चाहिए?
- 23. दस्तावेज़ के बाद आईई के लिए ऑब्जेक्ट को क्यों हटाया जाना चाहिए .getElementById-ed?
- 24. ओओ प्रश्न - मिश्रण नियंत्रक तर्क और व्यापार तर्क
- 25. कोबोल को इंडेंट क्यों किया जाना चाहिए?
- 26. रुबी में @@ class_variables से क्यों बचा जाना चाहिए?
- 27. मुझे ReSharper से CodeRush पर क्यों जाना चाहिए?
- 28. स्थैतिक क्षेत्र को स्थिर तरीके से क्यों पहुंचाया जाना चाहिए?
- 29. एमवीसी नियंत्रक और व्यापार तर्क (3 स्तर)
- 30. व्यापार तर्क रेल में कहां जाता है?
संबंधित: http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files – BalusC