2009-05-06 16 views

उत्तर

5

एक डिज़ाइन लक्ष्य के रूप में, मॉड्यूलरिटी का अर्थ है कि आप अलग-अलग हिस्सों (मॉड्यूल) से बना एक आवेदन करना चाहते हैं जहां प्रत्येक भाग में जिम्मेदारी का क्षेत्र होता है और उस क्षेत्र से संबंधित सभी वर्ग शामिल होते हैं (उच्च cohesion), और उन लोगों के बीच संचार भागों संकीर्ण, अच्छी तरह से परिभाषित और दस्तावेज इंटरफेस (loose coupling) के माध्यम से होता है।

आप इसे पहले से ही अपने डिजाइन की योजना बनाकर और उन योजनाओं को समायोजित करके और कार्यान्वयन के दौरान लगातार कोड को पुन: सक्रिय करके प्राप्त करते हैं।

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

+0

क्या आप मॉड्यूल को वर्गीकृत करने के तरीके के बारे में कुछ उदाहरण दे सकते हैं? – Joset

+0

"वर्गीकृत" के साथ आपका क्या मतलब है? जिम्मेदारी का क्षेत्र? –

+0

हां। दूसरे शब्दों में, मॉड्यूल कैसे स्तरित किया जाना चाहिए और परतें क्या हैं? – Joset

4

आपका मतलब ग्रहण की तरह मॉड्यूलर है?

आप ग्रहण आरसीपी या NetBeans आरसीपी पर अपने जावा डेस्कटॉप अनुप्रयोग का आधार हैं, तो आप प्रतिरूपकता "मुक्त करने के लिए" (लगभग ;-)) प्राप्त होंगे

5

OSGi प्रौद्योगिकियों पर एक नज़र डालें। अपने आवेदन के प्रत्येक मॉड्यूल (एक बंडल कहा जाता है) एक अलग जार है, और OSGi और निर्भरता संकल्प का ख्याल बंडल classpaths गतिशील लोड हो रहा है आदि

डेस्कटॉप अनुप्रयोगों मैं दृढ़ता से www.dynamicjava.org से DA-लांचर को देख सिफारिश करेंगे के लिए ले जाता है। यह आपके ऐप सूओ को बहुत आसान बनाता है। उनके पास गतिशील जेपीए जैसी कुछ चीजें भी हैं जो किसी ओएसजीआई ऐप के लिए उपयोगी हैं।

1

मैं ग्रहण आरसीपी की भी सिफारिश करता हूं या नेटबीन्स आरसीपी पर एक नज़र डालता हूं। दोनों बहुत समान हैं। एक चीज जो उन्हें अलग करती है वह यह है कि ग्रहण आरसीपी स्विंग के बजाय मूल जीयूआई पुस्तकालयों का उपयोग करता है जो नेटबीन का उपयोग करता है।

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

यह एक समय हो गया तो मैं शायद ग्रहण आरसीपी में कस्टम नियंत्रण के विकास के बारे में गलत कर रहा हूँ।

बात वे आम में है कि स्मार्ट और मॉड्यूलर डेस्कटॉप एप्लिकेशन विकसित मज़ा है और आप बहुत कम समय में पेशेवर लग रही ऐप्स प्राप्त है!

शुभकामनाएं!

1

तुम भी जावा प्लग-इन फ्रेमवर्क पर एक नज़र ले सकता है,

http://jpf.sourceforge.net/

JPF बहुत प्रतिरूपकता और अपने जावा प्रणाली की तानाना में सुधार लाने और समर्थन और रखरखाव लागत को न्यूनतम कर सकते हैं ।

0

आपका प्रश्न को स्प्रिंग आरसीपी

http://www.springsource.org/spring-rcp

जब आवेदन के अपने GUI भाग के आयोजन के साथ एक कोशिश है ...

3

जवाब वास्तव में आप से क्या मतलब था पर निर्भर करता है "मॉड्यूलर"

आपके आवेदन मॉड्यूलर करते समय आपको चिंता करने के कई स्तर हैं।

सब करता है, तो "प्रतिरूपकता" यदि आप चाहते हैं वास्तु modlarity, deploymeyment समय प्रतिरूपकता या क्रम प्रतिरूपकता है आप पर विचार करना चाहिए पहले।

किसी भी मामले में हर लगातार स्तर पिछले सभी स्तरों का तात्पर्य है।

स्टार्टर्स के लिए - अपना एप्लिकेशन मॉड्यूलर बनाने के लिए आपको आर्किटेक्चर से शुरुआत करना है। अपनी चिंताओं को अच्छी तरह से परिभाषित स्वच्छ कट भागों में अलग करें जिनके पास "बाहरी दुनिया" के लिए अच्छी तरह से परिभाषित इंटरफेस हैं। अच्छे design patterns और dependency injection का उपयोग और unit testability के लिए डिज़ाइनिंग मॉड्यूलर डिज़ाइन का आधार है जो चिंताओं के अच्छे अलगाव को प्राप्त करने के लिए यहां एक लंबा रास्ता तय करता है।

छोटे से शुरू करें लेकिन बड़ी तस्वीर को ध्यान में रखें। अपने सिस्टम के थोड़ा बड़े भाग (या मॉड्यूल) को डिज़ाइन करते समय सुनिश्चित करें कि उनके पास जितना संभव हो उतना ओवरलैपिंग क्षेत्र हैं। प्रत्येक मॉड्यूल को उनके द्वारा चलाए जाने वाले पर्यावरण के बारे में लगभग कोई धारणा नहीं करनी चाहिए और केवल एक ही चिंता की सेवा करनी चाहिए। किसी भी कामकाजी ऐप में मॉड्यूल को ग्लूइंग करने के लिए इसे किसी भी सेवा को अपने प्रारंभिकरण से स्पष्ट रूप से प्रदान किया जाना चाहिए (अधिमानतः निर्भरता इंजेक्शन का उपयोग करना)।

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

तैनाती समय प्रतिरूपकता सक्षम करने की दिशा में एक लंबा रास्ता तय करना जा रहे निर्भरता इंजेक्शन चौखटे Guice, Spring framefork और दूसरों की तरह हैं।

रनटाइम प्रतिरूपकता तरह से मैं देख रहा हूँ यह कुछ तैनाती/स्थापना के बाद ग्रहण और NetBeans प्लगइन्स या मोज़िला एक्सटेंशन द्वारा प्रदान की जहां विन्यास बदल सकते हैं और अपने आवेदन मॉड्यूल के सेट प्रतिरूपकता के लिए समान है।

यह किसी प्रकार का आर्किटेक्चर और आधारभूत संरचना का तात्पर्य है जो नए प्लग-इन/एक्सटेंशन को या तो एप्लिकेशन प्रारंभिक समय या गतिशील रूप से रनटाइम पर पहचानता है।

लेटर का यह भी अर्थ है कि आपके सभी मॉड्यूल को अंतर्निहित धारणा के साथ बनाया जाना चाहिए कि मॉड्यूल का उपयोग करने वाली कोई भी सेवा किसी भी समय आसानी से गायब हो सकती है, जिससे इस अस्थिर दुनिया में चल रहे कोड की मजबूती सुनिश्चित करने के लिए अतिरिक्त प्रयास किया जा सकता है।

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