2009-07-30 11 views
5

मैं इस बात के बारे में थोड़ा उलझन में हूं कि मॉडल को मेरे मूल सी ++ कार्यान्वयन में 'काम' कैसे करना चाहिए, या इसके बजाय डाटाबेस बैकएंड कहने वाले डेटा को कैसे समेकित/काम किया जाना चाहिए।सी ++ एमवीसी मॉडल - इसे कैसे कार्यान्वित किया जाना चाहिए?

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

डेटाबेस में एक नई पंक्ति बनाने के मामले में, मुझे लगता है कि मॉडल का एक नया उदाहरण बनाया जाएगा, डेटा के साथ पॉप्युलेट किया जाएगा, और प्रभावी रूप से एक सेव() विधि कहा जाता है?

उम्मीद है कि मैं सही लाइनों पर हूं, लेकिन यहां कार्यान्वयन/डिजाइन पर थोड़ा उलझन में हूं।

किसी भी सलाह की सराहना की जाएगी।

अग्रिम धन्यवाद, जेम्स

+1

वैसे भी आप किस बारे में बात कर रहे हैं? – User

+0

मुझे अब डर है कि यह समझ में नहीं आता कि आपकी समस्या क्या है। मुझे लगता है कि आप सी ++ के साथ उपयोग करने के लिए किसी प्रकार का एमवीसी ढांचा तैयार कर रहे हैं। लेकिन वास्तव में स्पष्ट नहीं है, आप क्या कर रहे हैं, किस उद्देश्य के लिए, आप किस चरण में हैं और वास्तव में आपकी वर्तमान समस्या क्या है। क्या आप उस पर विस्तार से बता सकते हैं? – User

+0

हम्म। मैं एमवीसी के सिद्धांत को समझता हूं, और यह मॉडल क्या हासिल करना है - यह एक सवाल है कि मॉडल के किस प्रकार के इंटरफ़ेस होना चाहिए। मुझे डेटा के लिए स्थैतिक तरीकों के माध्यम से पूछना चाहिए, और फिर मॉडल के उदाहरण डेटा की एकल 'पंक्तियों' का प्रतिनिधित्व करते हैं? उम्मीद है कि कुछ स्पष्टीकरण प्रदान करता है ^^; ... –

उत्तर

4

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

एक आम दृष्टिकोण को ऑब्जेक्ट-रिलेशनल मैपिंग, या ORM कहा जाता है। मैं कैसे रूबी ऑन रेल्स लागू करता ORM के साथ ही परिचित हूँ, लेकिन अगर आप इसे सी पर लागू कर ++ यह इस तरह दिखता है:

  • एक डेटाबेस तालिका एक वर्ग के लिए एक मेज पर
  • संचालन इस तरह के प्रश्नों के रूप में नक्शे () इसी वर्ग एक तालिका में
  • पंक्तियाँ इसी वर्ग
  • किसी तालिका में फ़ील्ड्स के उदाहरण के अनुरूप के स्थिर सदस्य कार्यों के लिए नक्शे इसी वर्ग के सदस्य चर के अनुरूप

थेर ई शायद आपके लिए ओआरएम मानचित्रण करने के लिए सी ++ पुस्तकालय हैं। मैं किसी से खुद से परिचित नहीं हूं क्योंकि मुझे इसे कभी भी C++ में नहीं करना पड़ा है।

संपादित करें: This प्रश्न सी ++ के लिए ओआरएम पुस्तकालयों के बारे में पूछता है।

1

पहले सलाह: पुस्तक "के चार गैंग" - गामा एट अल द्वारा डिजाइन पैटर्न। यह एमवीसी और अन्य आवश्यक पैटर्न बताता है: पर्यवेक्षक।

विकिपीडिया भी मदद कर सकता है।

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

ऐतिहासिक कारणों से: लर्न स्मॉलटॉक (उदाहरण के लिए सिंकॉम स्मॉलटॉक)।

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