2013-04-23 7 views
6

मुझे दो अलग-अलग परियोजनाओं में दो डेटा मॉडल के साथ एक परियोजना को दोबारा करने की जरूरत है। दोनों परियोजनाएं एक ही अपवाद का उपयोग करती हैं। क्या मुझे इन अपवादों के लिए केवल तीसरी परियोजना बनाना चाहिए? क्लोनिंग एक नो-गो की तरह लगता है।कई परियोजनाओं द्वारा अपवादों को कहां रखा जाना चाहिए?

+6

मैं उन्हें एक अलग जार में रखूंगा और निर्माण के बाद दो परियोजनाओं के साथ जार को जोड़ूंगा। –

उत्तर

7

हां आपको इसे एक अलग परियोजना पर बनाना चाहिए, और इसे दूसरों पर निर्भरता के रूप में उपयोग करना चाहिए। प्रोजेक्ट/जार को देखना असामान्य नहीं है जिसमें आपके द्वारा काम किए जाने वाले मॉड्यूल में केवल अपवाद हैं। चीजें व्यवस्थित रखने के लिए यह एक अच्छा तरीका है IMHO।

+0

सहमत नहीं है, दो परियोजनाओं के बीच आम तौर पर केवल अपवाद ही मुझे सुगंधित लगता है। मेरा मानना ​​है कि वे अपने वर्ग के नामों में समान हैं और कुछ भी नहीं! –

+0

मेरा मानना ​​है कि ओपी का मतलब एक ही परियोजना में 2 मॉड्यूल है, वास्तव में 2 स्वतंत्र परियोजनाएं नहीं। अगर ऐसा है तो इस समाधान के साथ-साथ इस सवाल का कोई मतलब नहीं है। यहां तक ​​कि पैकेज नाम अजीब भी होंगे। –

1

IMHO, मौजूदा टिप्पणी में आपका उल्लेख @harsha के रूप में, सबसे आसान समाधान एक पुस्तकालय या .jar फ़ाइल और अपनी परियोजना के पुस्तकालय के लिए .jar फ़ाइल में साझा कोड डाल करने के लिए किया जाएगा।

अब आपके पास एक मूल्यवान एपीआई है जिसे आपके संस्करणों के साथ प्रत्येक निर्माण के लिए आसानी से बनाए रखा जा सकता है।

1

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

1

क्या आम तौर पर केवल अपवाद हैं? यह अजीब लगता है।

क्या इन परियोजनाओं के बीच कोई निर्भरता है? क्या कोई दूसरा ग्राहक है?

मेरा मानना ​​है कि कुछ इंटरफेस भी आम हैं, कुछ जो इन तरीकों को उनके तरीकों के हस्ताक्षर में घोषित करते हैं। कुछ जो आपकी परियोजनाओं में से एक में लागू होते हैं, और अन्य परियोजनाओं में बुलाए जाते हैं।

यदि ऐसी कोई चीज़ नहीं है, तो ऐसा लगता है कि आपके सामान्य अपवाद उनके नाम से आम हैं! वे वास्तव में एक ही कक्षा नहीं हैं, उनके पास एक ही नाम है, और क्योंकि उपयोगकर्ता के कई परिभाषित अपवादों में केवल रचनाकार हैं जो super कन्स्ट्रक्टर कहते हैं, वे समान हैं।

यदि यह आपका मामला है, तो मैं कक्षाओं को निकालने के लिए खुद को परेशान नहीं करता, और मैं डुप्लिकेशंस रखता हूं, क्योंकि रिफैक्टरिंग द्वारा कुछ भी प्राप्त नहीं होता है।

+0

वे दो (वास्तव में अधिक) विभिन्न प्रणालियों के लिए दो मॉडल हैं जिनका उपयोग लक्ष्य प्रणाली में डेटा आयात करने के लिए किया जाता है। आम बातों में आम बात है कि मैंने पहले ही एक उपयोग परियोजना में रखा है। लेकिन मुझे नहीं लगता कि अपवादों को वहां जाना चाहिए, क्योंकि एक सिस्टम को यूटिलों की आवश्यकता नहीं हो सकती है लेकिन अपवाद। – lilalinux

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