2012-03-16 6 views
6

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

Study Guide to the SCJP 6 में युग्मन सत्र को देखते हुए, यह कहते हैं:

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

यदि मैं यह सही समझ गया, तो बेहतर तरीका प्रत्येक दृश्य में इंटरफेस (अनुबंध) बनाएगा, और यदि आवश्यक हो तो डेटा को पुनर्प्राप्त करने के लिए इस इंटरफेस विधियों का उपयोग करें। क्या यह एक अच्छा तरीका है? एक अच्छा समय व्यतीत करने के लिए एक इंटरफेस बनाने के लिए जो एक दृश्य से उजागर किया गया है ठीक है?

एक और तरीका जो मुझे लगता है कि कक्षाओं को देखने के डेटा (मॉडल) को पकड़ना है। इस मामले में, इस मॉडल कक्षाओं में सीधे एक अच्छा दृष्टिकोण पहुंच है?

अग्रिम धन्यवाद।

उत्तर

6

की धारणा स्विंग, A Swing Architecture Overview में उल्लिखित अनुसार। आमतौर पर, प्रत्येक मॉडल को एक इंटरफ़ेस द्वारा दर्शाया जाता है; कुछ में कुछ बुनियादी घटना नलसाजी के साथ AbstractXxxModel शामिल हैं; और कई मानक कार्यान्वयन के साथ DefaultXxxModel है।

+0

ऐसा लगता है कि आपके पास हर स्थिति के लिए हर उदाहरण है :-) –

3

यह पूरी तरह से निर्भर करता है कि आप कौन सी डिज़ाइन पसंद कर रहे हैं। ऐसे समय होते हैं जहां डिज़ाइन विकल्प हम सुझाव देंगे, व्यू के डेटा साझाकरण के लिए बेहतर है लेकिन यह आपके सॉफ़्टवेयर के अन्य पहलू को ध्वस्त कर देता है। तो आपके आवेदन को सुचारु रूप से चलाने के लिए आपके पास संतुलन बनाए रखने के लिए डिज़ाइन विकल्प बनाया गया है।

मैं व्यक्तिगत रूप से एमवीसी डिजाइन पैटर्न पसंद करता हूं। यह हर बार मेरे लिए काम करता है! पर MVC के बारे में अधिक पढ़ें:

Model View Controller

गुड लक!

नोट: एमवीसी में दो विचार कभी एक दूसरे के साथ बातचीत नहीं करते हैं बल्कि वे मॉडल से डेटा प्राप्त करने के लिए नियंत्रकों का उपयोग करते हैं और मूल रूप से प्रत्येक दृश्य में इसके डेटा मॉडल के संदर्भ में नियंत्रक होते हैं।

+0

एमवीसी के लिए +1; यहां एक संबंधित [उदाहरण] है (http://stackoverflow.com/a/3072979/230513)। उदाहरण के लिए – trashgod

+0

@trashgod धन्यवाद! –

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