2010-08-20 4 views
9

आप वास्तव में इस पहले भाग को छोड़ सकते हैं क्योंकि यह भ्रमित हो जाता है, लेकिन मैं इसे यहां रखूंगा क्योंकि मैं जानना चाहता हूं कि कोई और वही तरीका महसूस करता है या नहीं। मैं एक सीएस अंडरग्रेड हूं जो जावा का उपयोग 3 वर्षों से कर रहा है, और मुझे अभी भी यह समझना मुश्किल लगता है कि मुख्य डिजाइन को मेरे डिजाइन में कैसे शामिल किया जाए। इसे कक्षा में रखने के लिए गलत लगता है, लेकिन इसे किसी अन्य वर्ग फ़ाइल में डालने में भी गलत लगता है। मैं उत्तरार्द्ध को इस तरह देखता हूं क्योंकि यह कक्षा के बाकी हिस्सों के साथ फिट नहीं होता है। उदाहरण के लिए, मैं अपने दस्तावेज़ रीडर ऑब्जेक्ट पर केवल एक मुख्य फ़ंक्शन नहीं लगा सकता। वस्तु के साथ इसका कोई लेना-देना नहीं होगा। दूसरी तरफ, मैं केवल एक मुख्य श्रेणी नहीं बना सकता जिसमें केवल मुख्य कार्य होता है क्योंकि ऑब्जेक्ट उन्मुख प्रोग्रामिंग में, आपको वस्तुओं के संदर्भ में प्रभावी ढंग से अपने सिर में एक लघु दुनिया बनाने के बारे में सोचना चाहिए। उस लघु दुनिया के लिए एक ही वस्तु के चारों ओर घूमने के लिए जो कुछ भी नहीं बल्कि अस्तित्व में है, बस लगता है। यह एक कहानी में एक कथाकार और चरित्र के रूप में कार्य नहीं करता है क्योंकि यह एक ही समय में कुछ भी नहीं करता है। मैं मुख्य समारोह रखने की सी की शैली पसंद करता हूं जो सबकुछ से अलग है। यह कहानी के वर्णन को उन पात्रों से अलग रखता है जो एक दूसरे के साथ बातचीत कर रहे हैं।आप जावा के मुख्य फ़ंक्शन को अपने डिज़ाइन में कैसे शामिल करते हैं?

मैं जानना चाहता हूं कि पेशेवर मुख्य विधि को उनके शेष कोड में कैसे मिलाते हैं। आप इसे बाकी डिज़ाइन के साथ कैसे फिट करते हैं। इसके अलावा, क्या वे आम तौर पर लंबे या छोटे होते हैं?

+0

मुझे अपनी मुख्य विधि जितनी कम संभव हो सके रखना है, और कारखानों में जटिल वस्तु निर्माण करना पसंद है। – helpermethod

उत्तर

5

मैं main() फ़ंक्शन को अपनी प्रोजेक्ट नामक कक्षा में रखता हूं। इसके साथ ही जब आप कमांड लाइन से एप्लिकेशन लॉन्च आप टाइप करें:

java com.domain.project.ApplicationName 

यह बजाय तर्क मुझे लगता है एक सरल लांचर नाम है:

java com.domain.project.AClassWhichDoesntLookLikeAMainClass 

या (भी) क्लासिक

java com.domain.project.Launcher 

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

एक और बात, आपकी मुख्य() विधि भारी हो सकती है, खासकर यदि आप वास्तव में अधिक सीएलआई विकल्पों के लिए मुख्य तर्क का उपयोग करते हैं। शायद यह अपनी कक्षा के लायक है।

+1

99% समय परियोजना का नाम = आवेदन का नाम – TheLQ

+0

हां, लेकिन 1% खातिर के लिए स्पष्ट रूप से 'प्रोजेक्ट। एप्लिकेशन नाम' कहें, भले ही यह प्रोजेक्ट नाम = एप्लिकेशन नाम पर अनावश्यक हो। –

4

अच्छा, मैं कभी-कभी *Application कक्षा बनाना चाहता हूं और इसे वहां रखता हूं। DocumentReader के लिए, मेरे पास DocumentReaderApplication होगा जहां मैं मुख्य फ़ंक्शन डालूंगा, और किसी स्टार्ट-अप विकल्प/कमांड-लाइन तर्कों को भी संसाधित कर सकता हूं। यदि यह एक जीयूआई ऐप है, तो *Application कक्षा मुख्य विंडो लॉन्च करेगी। आखिरकार, कार्यक्रम का प्रवेश बिंदु कहीं होना चाहिए, है ना?

4

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

0

मैं इसे Program कक्षा में छोड़ देता हूं, जहां यह सब अकेले होने जा रहा है। यह आमतौर पर बस मेरी मुख्य खिड़की शुरू करता है तो खिड़की से बाहर निकलने पर निकलता है।

2

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

जावा ईई और ओएसजीआई बंडलों के लिए सामान्य दृष्टिकोण WAR/EAR हैं।

3

कट्टर OOP लोग इस तरह नहीं सकता है, लेकिन मैं सिर्फ एक वर्ग मेरी जड़ परियोजना पैकेज है कि मुख्य विधि रखती में Main कहा जाता है।

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

+0

मैं भी ऐसा करता हूं। –

2

मैं जावा वेब विकास में काम करता हूं, और वर्षों से है।

मैं कभी नहीं एक बार पेशेवर शब्द "public static void मैं" लिख चुके हैं।

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

0

मुख्य कोड() विधि में न्यूनतम कोड रखें। प्रतिनिधिमंडल का उपयोग करें, क्योंकि यह किसी त्रुटि के मामले में आपकी समस्या को स्थानांतरित करने में मदद करता है। यदि आप अपने मुख्य वर्ग या मुख्य() विधि में व्यावसायिक तर्क या यहां तक ​​कि यूआई कोड जोड़ते हैं, तो यह बढ़ता जा रहा है। यह ऑब्जेक्ट ओरिएंटेड दृष्टिकोण के साथ-साथ प्रक्रियात्मक प्रोग्रामिंग के लिए भी लागू होता है।

0

मैं हर दूसरे वर्ग में एक मुख्य विधि है कि कुछ उचित स्टैंड-अलोन व्यवहार हो सकता है, और यह केवल सरल परीक्षण प्रयोजनों के लिए हो सकता है शामिल हैं।

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

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