ऐसा लगता है जैसे आप एक इंटरफ़ेस बना रहे हैं जो प्रत्येक आमंत्रण के साथ कई अलग-अलग संचालन करता है। मुझे यकीन नहीं है कि क्या आप "कमांड लाइन" एप्लिकेशन का जिक्र कर रहे हैं (जो एक क्रिया करता है, फिर बाहर निकलता है) या एक सीएलआई एप्लीकेशन (जो एक प्रॉम्प्ट प्रदर्शित करता है और उपयोगकर्ता इनपुट में बार-बार प्रतिक्रिया देता है)। आम तौर पर, पूर्व के मुकाबले पहले निर्माण करना बहुत आसान होगा; मुझे लगता है कि अगर आपके एप्लिकेशन को कुछ निरंतर स्थिति की आवश्यकता होती है जो एकाधिक कमांडों पर विकसित होती है तो केवल सीएलआई का उपयोग करना समझ में आता है। यदि आप इस तरह से कुछ निपट रहे हैं, तो अल्फाज़ेरो सही है - आपको शायद आरईपीएल के बारे में जानना चाहिए और एक अच्छा कॉपी करना चाहिए।
किसी भी मामले में, यह कार्य तर्क कमांड लाइन को पारित कर दिया पर निर्भर करेगा, तो मैं उस हिस्से के बारे में मंथन होगा ...
यह आवेदन की समझदार लगता है कि अलग का एक सेट के रूप में है " कमांड "ऑब्जेक्ट्स, प्रत्येक ऑपरेशन के लिए एक। इस प्रकार एप्लिकेशन में एंट्री पॉइंट कमांडलाइन डिस्पैचर ऑब्जेक्ट का एक प्रकार होना चाहिए जो उचित कमांड ऑब्जेक्ट को अनुरोध भेजता है।
मॉड्यूलर होने के लिए, प्रेषक को प्रत्येक कमांड टोकन (आमतौर पर कमांड लाइन स्ट्रिंग का पहला शब्द) को कमांड ऑब्जेक्ट में जोड़ने के लिए एक सारणित मैपिंग (उदाहरण के लिए, हैशटेबल) के साथ कॉन्फ़िगर किया जाना चाहिए। प्रेषक भारी विकल्प-पार्सिंग को भी संभाल सकता है, शायद भारी उठाने के लिए कुछ ऑफ-द-शेल्फ "गेटोपेट्स" लाइब्रेरी का उपयोग कर सकता है।
सरल शुरू करने के लिए, प्रत्येक कमांड ऑब्जेक्ट अपने काम करने के लिए एक सतत इंटरफेस लागू कर सकता है; इस तरह शायद कुछ:
public void execute(List<String> args)
इस तरह, प्रवेश बिंदु डिस्पैचर बस कमान अनुरोध किया जा रहा पाता है, और यह executes
।
त्रुटि-हैंडलिंग के संबंध में: execute()
विधि केवल त्रुटियों को संवाद करने के लिए अपवाद फेंक सकता है ... अपवाद को प्रेषक द्वारा पकड़ा और संसाधित किया जा सकता है, या बस स्क्रीन पर लॉग इन किया जा सकता है। वैकल्पिक रूप से, कमांड कमांड सामान्य निर्देशों के साथ एक त्रुटि संदेश को गठबंधन करने के लिए कुछ साझा usage
फ़ंक्शन को आमंत्रित कर सकता है। मुझे नहीं लगता कि "प्रवेश बिंदु" को आपके द्वारा सुझाए गए समस्याओं के बारे में अवगत कराया जाना चाहिए; अगर आपको मजबूत त्रुटि-प्रबंधन की आवश्यकता है (उदाहरण के लिए, लॉगिंग या क्षमताओं को अलर्ट करने के लिए), ऐसा लगता है कि यह एक अलग घटक में है जो कमांड ऑब्जेक्ट को प्रदान किया जा सकता है।
सामान्य रूप से, कमांड लाइन एप्लिकेशन उपयोगकर्ता इनपुट का जवाब देने वाले किसी अन्य एप्लिकेशन से अलग नहीं होता है - आपको इनपुट को रोकने और इनपुट करने के लिए एक प्रेषक की आवश्यकता होगी, और हैंडलर (उर्फ "नियंत्रक") निष्पादित करने के लिए समर्थित संचालन। यदि आपको अन्य सेवाओं की आवश्यकता है (लॉगिंग, चेतावनी, डेटाबेस कनेक्टिविटी, आदि), तो आप इस तर्क को अलग करने और इसे साफ इंटरफेस के साथ बेनकाब करने के लिए अलग-अलग घटकों को बनाने के लिए अच्छा प्रदर्शन करेंगे।
कंसोल क्षुधा आम तौर पर प्रकृति में उपयोगी हैं। WinForms डेस्कटॉप ऐप्स पर wwitching करके - आपके पास एक बेहतर सीखने का अनुभव हो सकता है - और कई और नमूना ऐप्स ढूंढें। – DOK
कंसोल schmonsole। ओओ प्रोग्राम करने से पहले ओओ सीखने के बारे में सब कुछ। कोड पूर्ण करने के लिए एक सभ्य प्रारंभिक बिंदु है। उपयोगी ऐप आर्किटेक्चर गाइड के लिए सूचक के लिए – Will