2011-04-28 10 views
18

जेएसपी के बाहर व्यापार तर्क रखने के क्या फायदे हैं, क्योंकि जेएसपी मुख्य रूप से प्रेजेंटेशन के लिए हैं? हम अभी भी जेएसपी के अंदर लिखे गए व्यवसाय तर्क को देखते हैं, इसलिए मुझे यह जानना आवश्यक था कि जेएसपी से व्यवसाय तर्क को स्थानांतरित करके हमें क्या लाभ मिलता है।जेएसपी से व्यापार तर्क क्यों हटाया जाना चाहिए?

+1

संबंधित: http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files – BalusC

उत्तर

14

MVC का मुख्य लाभ यह आप कई दृश्य हो सकता है और स्वच्छ और अलग वास्तुकला & Simplicity


उपयोगिता

मान लीजिए कल आपको डेस्कटॉप ऐप पर चलने वाला एक ही ऐप चाहिए। तो आप बस दृश्य बदल सकते हैं।


Testability

आप इकाई आपकी सेवा तरीकों का परीक्षण कर सकते हैं, लेकिन देखने से आप बस नहीं इकाई परीक्षण तर्क कर सकते हैं।


अनुरक्षणीयता

यह सेवा तरीकों से कोड समझने में आसान है, यह भी हम इसे/रिलीज सेवा एपीआई बदल सकते हैं और यह आसानी से बनाए रखने के


संस्करण क्षमता

कर सकते हैं

आप अपने एपीआई को संस्करण दे सकते हैं और मानक बनाए रख सकते हैं मुद्दों/अपडेट करने के लिए संबंधित अगर आप सेवा एपीआई का उपयोग करने के बजाय तर्क के लिए देखने


देखें इसके अलावा

2
  1. यह हो जाता है पुन: प्रयोज्य
  2. यह डिजाइनरों से दूर ले जाता है यह (इसलिए यह उनके रास्ते में नहीं मिलता है, और वे डॉन (दोनों अन्य अनुप्रयोगों के लिए, और अलग-अलग दृश्यों (जैसे एक JSON एपीआई) के लिए) 'टी गलती से इसे तोड़ने)
1

मैं डॉक्स यकीन नहीं है लेकिन यह हो सकता है कारण:

इसके लिए पुन: प्रयोज्यता उद्देश्य।

जेएसपी का उपयोग केवल प्रस्तुति उद्देश्य और हमारे एचटीएमएल डिजाइनर के लिए किया जाना चाहिए, जो बाद में डिज़ाइन करते हैं, पृष्ठ जावा कोडिंग से अवगत नहीं है, यह आरामदायक नहीं होगा। और सर्वलेट में सभी buiseness तर्क लिखने कोड पुन: प्रयोज्य करने देता है।और जेएसपी पेज में buiseness तर्क लिखने के लिए कुछ अन्य तरीके हैं जैसे स्क्रिप्लेट का उपयोग करना। तो नौकरी कम लाभ और अतिरिक्त काम के साथ क्यों करें।

अब अगर हम व्यापार तर्क के लिए jsp पेज का उपयोग कर रहे तो स्क्रिप्टलेट JSP पेज जो व्यापार इकाई के लिए सर्वलेट की भारी maintaince cost.The अलग घोषणा की ओर जाता है सब से ऊपर से बचने जाएगा अंदर अधिक हो जाएगा।

9

यह Separation of Concerns डिज़ाइन सिद्धांत का एक विशिष्ट अनुप्रयोग है।

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

एसओसी का एक अन्य लाभ इन इकाइयों के औसत आकार और जटिलता को कम कर रहा है। यह बदले में आपके सॉफ़्टवेयर को समझने और बदलने के लिए आसान बनाता है।

इसके अलावा छोटी तार्किक इकाइयां उन्हें यूनिट परीक्षण के लिए बहुत आसान बनाती हैं, एकीकरण परीक्षण में नकली करना और कार्यान्वयन में बदलाव के बाद परीक्षणों को ठीक करना आसान बनाता है।

+4

और इकाई परीक्षण के लिए आसान। – Codemwnci

+0

@Codemwnci +1 निश्चित रूप से – kostja

+0

@Codemwnci दिमाग अगर मैं उत्तर में आपकी टिप्पणी शामिल करता हूं? – kostja

3

मैं यहां पोस्ट किए गए सभी अच्छे लोगों के लिए एक और कारण जोड़ूंगा।

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

आप यूआई तकनीक को बदलने का फैसला करते हैं क्योंकि आप अपने ऐप को दोबारा लिखना नहीं चाहते हैं।

यह सुरक्षा के लिए भी बेहतर है। यदि ब्राउज़र तर्क ब्राउज़र पर जाता है, तो एक मौका है कि उपयोगकर्ता कोड देख सकते हैं और यह पता लगा सकते हैं कि आप क्या कर रहे हैं।

तो आप सर्वर के पक्ष में व्यावसायिक तर्क रखने से बेहतर हैं।

0

अन्य सहकर्मियों द्वारा पोस्ट किए गए अच्छे कारणों को जोड़ने के लिए और विशेष रूप से "व्यापार तर्क जेएसपी से बाहर ले जाना चाहिए"।

काम पर संक्षेप में हमारे पास बहुत सारे जेएसपी थे जहां व्यापार तर्क खत्म हो गया था और यह बहुत गन्दा दिख रहा था। सत्र/अनुरोध से ऑब्जेक्ट प्राप्त करने और कुछ चेक करने के लिए तर्क था। जेएसपी में कुछ स्थितियों के आधार पर एक सरल उदाहरण विभिन्न पेज शीर्षकों का निर्माण है।

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

final SimplePageBuilder pageBuilder = new SimplePageBuilder(object1); 
request.setAttribute("TestBean", pageBuilder.buildPage()); 

buildPage विधि पेज सेम वस्तु वापस आ जाएगी और jsp में एक सरल उदाहरण getTitle बस शीर्षक (के रूप में तर्क पृथक है पढ़ने में आसान) लौट आते हैं।

0

व्यवसाय तर्क को प्रस्तुतिकरण तर्क से अलग किया गया है, तो वेब अनुप्रयोग का पुन: उपयोग करना और बनाए रखना बेहतर है।

मान लीजिए कि मेरे पास 3 जेएसपी पेज हैं, प्रत्येक को कुछ आम व्यावसायिक तर्क की आवश्यकता होती है। यदि मैं जेएसपी पृष्ठों के अंदर व्यापार तर्क डालता हूं, तो कोड की डुप्लिकेट होगी।

संबंधित मुद्दे