दोस्तों, मैं एक आवेदन, एक सीडी कंटेनर सीडी डालने के लिए के लिए एक जीयूआई प्रोग्रामिंग कर रहा हूँ, और वर्तमान में मैं बहुत स्पष्ट नहीं कर रहा हूँ और मुझे लगता है कि मैं कुछ मदद की जरूरत है के बारे में वस्तु उन्मुख डिजाइन मेरी समझ स्पष्ट करने के लिए ।वस्तु उन्मुख डिजाइन सवाल
हां, तो पहले, मैं पर्यवेक्षक पैटर्न का उपयोग सार मॉडल और देखें वर्गों और भी ठोस मॉडल (सीडी कंटेनर) और ठोस विचारों (सीडी कंटेनर देखें) बनाने के लिए। तब मैं wxwidget ढांचे का उपयोग करने के लिए डिजाइन करने के लिए और चित्रमय उपस्थिति या लेआउट (CDContainerWidget, wxPanel से) सीडी कंटेनर और अन्य जीयूआई नियंत्रण मेनफ्रेम (wxFrame से), आदि के लिए ..
तो अब मैं तीन वर्गों है शुरू: CDContainerModel
(सीडी कंटेनर), CDContainerView
(पर्यवेक्षक पैटर्न के लिए कक्षा), और CDContainerWidget
(गुई नियंत्रण)। तो मैं CDContainerView
और CDContainerWidget
के साथ मुझे क्या करना चाहिए इसके बारे में स्पष्ट नहीं हूं?
मुझे लगता है कि CDContainerWidget और CDContainerView दोनों CDContainerModel की जरूरत है। मैं के बारे में चार दृष्टिकोण लगता है, लेकिन जो एक approriate है पता नहीं है:
1)। सहयोगी CDContainer एक सदस्य चर के रूप में CDContainerView में विजिट करें, फिर सीडीकॉन्टेनर व्यू को मुख्य फ्रेम में सदस्य चर के रूप में रखें।
class CDContainerView:
def __init__:
self.gui=CDContainerWidget
class MainFrame:
def __init__:
CDContainerView
2)। सीडीकॉन्टेनर व्यू उपclass सीडीकॉन्टेनरविजेट:
class CDContainerView(CDContainerWidget):
class MainFrame:
def __init__:
CDContainerView
3)। CDContainerWidget उपवर्ग CDContainerView:
class CDContainerWidget(CDContainerView):
class MainFrame:
def __init__:
CDContainerWidget
4)। बजाय CDContainerWidget और CDContainerView का उपयोग कर के, केवल एक ही वर्ग CDContainerBig जो अमूर्त वर्ग देखें उपवर्ग और wxPanel का उपयोग
class CDContainerBig(View, wxPanel)
मेरा प्रश्न है सही समाधान क्या है? मैंने एमवीसी पैटर्न के विकी पेज को पढ़ा है, लेकिन मैं वास्तव में इसके अवरोध को समझ नहीं पा रहा हूं और यह नहीं जानता कि यह कैसे और आश्चर्य भी है कि यह मेरी समस्या पर लागू करने के लिए अनुमोदित है या नहीं।
अच्छी तरह से, मैं कुछ अतिरिक्त टिप्पणियाँ डाल दिया। मूल रूप से, जब मैं प्रोग्राम में डिजाइन करना शुरू करता हूं, तो मैंने बहुत कुछ नहीं सोचा और बस चुनें, 2) दृष्टिकोण। लेकिन अब, मुझे लगता है 3) अच्छा है। चूंकि विजेट में विजेट डालना उचित है (CDContainerWidget MainFrame में)। लेकिन मुझे सच में यकीन नहीं है। यह पर्यवेक्षक पैटर्न के साथ भी लगता है, तीन वर्ग मोड़ और अजीब हैं। और कभी-कभी, मुझे लगता है कि ये 4 शायद वही हैं, बस कौन शामिल है, या कौन संदेश भेजता है। अच्छा, मुझे लगता है कि मुझे वास्तव में इस बिंदु पर स्पष्टीकरण की आवश्यकता है।
इसके अलावा, मैं व्यावहारिक बिंदु के कारण 3 के पक्ष में हूं। सीडीकॉन्टेनर विजिट में वास्तव में कई सबविजेट घटक (बटन, इनपुट बॉक्स इत्यादि) शामिल हैं और यदि हम सबकंपोनेंट विजेट के माध्यम से सेट नए मानों की तरह कुछ बदलते हैं, तो 1 के लिए), सीडीकॉन्टेनर व्यू को सीडीकॉन्टेनर व्यू के बारे में जागरूक होने के लिए सीडीकॉन्टेनर व्यू को अन्य विचारों को सूचित करने की आवश्यकता है। 2 के लिए) इससे भी बदतर, सीडीकॉन्टेनरविड्ज को अपने बच्चे के सीडीकॉन्टेनर व्यू से अवगत होना चाहिए। 3 के लिए) CDContainerWidget स्वयं सीडीकॉन्टेनर व्यू है, इसलिए काफी उचित है। 4 के लिए) अच्छी तरह से, आसान लेकिन कोई तर्क अलगाव। यह मेरा खुद का विचार है, यह नहीं पता कि यह सही है या नहीं।
धन्यवाद !!
अपने खुद के प्रश्न पर कभी टिप्पणी न करें। कभी नहीँ। कृपया ** अपना प्रश्न पूरा होने के लिए ** अपडेट करें। फिर, ** अपडेट ** के बाद, कृपया भ्रमित टिप्पणियों को हटा दें। अपने प्रश्न पर कभी टिप्पणी न करें। –