2011-08-17 13 views
13

मैं अपने कमांड लाइन प्रोजेक्ट में एमवीसी प्राप्त करने की कोशिश कर रहा हूं।कमांड लाइन जावा में एमवीसी

अब तक (कोई MVC, जाहिर है) मेरे पास है:

  • MainClass (फर्जी नाम स्पष्ट रूप से), मेनू कई बार उपयोग करते हुए एक झल्लाहट यह एक प्रणाली वस्तु
  • मेनू (मुख्य द्वारा इस्तेमाल किया बनाता है पेश करने के लिए विकल्प)
  • प्रणाली, यह एक फ़ाइल या कीबोर्ड इनपुट के साथ बनाया एक विशेषता के रूप में एक मॉडल, है, यह मॉडल डेटा का उपयोग करता एक सरल ऑपरेशन .calculate (valueA, VALUE अरब) जहां valueA और VALUE अरब का उपयोग कर चयन किया जाता है प्रदर्शन करने के लिए मॉडल
  • मॉडल (केन) के गुणों के एक मैदान से मेनू डी) मेरे पास मौजूद डेटा का कंटेनर है।

कोई मुझे कक्षाओं के लिए एक उचित संरचना का सुझाव सकते हैं?

धन्यवाद एक बहुत, ल्यूक

+0

आपका क्या मतलब है? क्या एमवीसी कक्षा पुस्तकालय? किस तरह का यूआई? – bmargulies

+0

मेरा मतलब है मॉडलव्यू कंट्रोलर –

+0

@ ल्यूक, यह या तो एक डिज़ाइन पैटर्न या मौजूदा लाइब्रेरी के लिए उपनाम है। यदि उत्तरार्द्ध, क्या पुस्तकालय? यदि पूर्व, आपका प्रश्न गैरकानूनी है। –

उत्तर

14

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

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

एक CLI में MVC करने के लिए प्राप्त करने के लिए कोड है कि स्पष्ट रूप से देखें/प्रस्तुति के रूप में परिभाषित किया है का एक हिस्सा है। इसमें कभी भी व्यापार तर्क के समान कुछ भी नहीं होना चाहिए। आपके नियंत्रक को ऑब्जेक्ट्स होना चाहिए जो उपयोगकर्ता इनपुट का जवाब कैसे दे सकते हैं और चीजों को देखने के लिए वापस भेज सकते हैं, हालांकि बिना किसी धारणा के कि इन चीजों को कैसे प्रदर्शित किया जाएगा या वास्तव में कौन से फॉर्म इनपुट होंगे। मॉडल, एक तरफ या दूसरा, मूल रूप से वास्तविक डेटा या "सामान" है जिसे उपयोगकर्ता परवाह करता है, और यह उस दृश्य को अनजान होना चाहिए जो इसे दिखा रहा है या नियंत्रक जो ... um ... इसे नियंत्रित कर रहा है।

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