2009-06-02 10 views
12

व्यूमोडेल कक्षाओं के लिए किस तरह का नामकरण सम्मेलन उपयुक्त है?आप अपने व्यूमोडेल कक्षाओं का नाम कैसे देते हैं?

उदाहरण: होमकंट्रोलर के लिए, इंडेक्स व्यू? HomeIndexViewModel सही प्रतीत नहीं होता है।

उत्तर

2

कर्मचारी व्यूडेटा।

मैं यही उपयोग करता हूं और नमूना अनुप्रयोगों में मैंने जो देखा है।

आपके अतिरिक्त उदाहरण के बारे में: कक्षा के नाम इमो को यह निर्दिष्ट करना चाहिए कि इसमें किस प्रकार का डेटा शामिल है। ".... इंडेक्स व्यूडाटा" बल्कि अर्थहीन है। उस पृष्ठ पर वास्तव में क्या प्रदर्शित होता है? इसे 1 या 2 शब्द में सारांशित करने का प्रयास करें और इसके पीछे 'व्यूडाटा' जोड़ें।

अन्यथा बस नियंत्रक का नाम लें और "अनुक्रमणिका" ड्रॉप करें। HomeViewData मुझे ठीक लगता है।

0

मैं HomeViewModel, या पिछले कर्मचारी उदाहरण का उपयोग, CreateEmployeeViewModel, EditEmployeeViewModel, आदि पसंद करते हैं विचार है कि "ViewModel" तथ्य यह है कि हम प्रस्तुति चिंताओं साथ काम कर रहे पर जोर देती है, और किसी भी डोमेन मॉडल वस्तुओं से ViewModels स्पष्ट रूप से दिखाता है आपके पास हो सकता है

1

मैं अपनी प्रस्तुति मॉडल नामों को प्रस्तुतिकरण के प्रकार के अज्ञेयवादी रखने की कोशिश करता हूं। मैं शुरुआत में एएसपी.NET दृश्य के लिए अपने मॉडल ऑब्जेक्ट का उपयोग कर सकता हूं, लेकिन बाद में मैं इसे डब्ल्यूसीएफ या विनफॉर्म ऐप में भी उपयोग कर सकता हूं। मैं अपने मॉडल नाम के साथ "ViewData", "ViewModel", "मॉडल" उन्हें muddying बिना इस तरह है कि वे तार्किक वर्णन करती होते हैं, की कोशिश आदि

उदाहरण:

ProductsWithPageInfo 
ProductWithAttributesAndTags 
ClientAndBillingDetail 
UserAccountWithAssociatedGroups 

आदि

+0

यदि आपके पास कोई ऐसा पृष्ठ है जिसमें उनमें से कई हैं, तो ProductsWithPageInfo के साथ एक पृष्ठ कहें जिसे उत्पादविथ एट्रिब्यूट्स एंडटैग की भी आवश्यकता है? – Alex

+0

ठीक है, ये प्रकार पहले से ही अन्य प्रकार के एकत्रीकरण हैं। उदाहरण के लिए, ProductsWithPageInfo में एक IList , int PageNumber, और int PageCount है। प्रत्येक प्रेजेंटेशन "मॉडल" ऑब्जेक्ट में किसी विशेष दृश्य को प्रस्तुत करने के लिए जो भी आवश्यक है। कभी-कभी, यदि मॉडल में बहुत सी चीजें हैं, तो मैं अंत में एटीसी जोड़ूंगा: ProductAttributesPurchaseHistoryEtc, जहां एटीसी का मतलब थोड़ा विवरण है (जैसे पेज नंबर और गिनती) जिसे नाम के नाम पर प्रदर्शित करने की आवश्यकता नहीं है कक्षा। आपके उदाहरण के मामले में: ProductsWithAttributesAndTagsEtc – jrista

0

मैं अपने नामों के हिस्से के रूप में लिफाफा शब्द का उपयोग कर रहा हूं, जिसे मैंने Wrox पुस्तक के अध्याय 1 को पढ़ने से पहले ही शुरू किया था और अधिक आम तौर पर स्वीकृत शब्द ViewModel की खोज की थी।

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

मैं उदाहरण के लिए, एक ग्राहक अद्यतनडेटी क्लास क्लास बना सकता हूं जो पूरी तरह से एक ग्राहक ऑब्जेक्ट और एक असंबंधित न्यूज़ टिकर ऑब्जेक्ट देने के लिए मौजूद है, उदाहरण के लिए, मेरे ग्राहक अद्यतन दृश्य में।

21

मैं निम्नलिखित पैटर्न का उपयोग, क्योंकि यह साफ और स्पष्ट है:

  • मॉडल: फू
  • दृश्य: FooView
  • ViewModel: इस विशेष थ्रेड के लिए बल्कि देर FooViewModel
0

, लेकिन मैंने ब्लॉग पोस्ट में ViewModel naming conventions के बारे में कुछ और अधिक विस्तृत सुझाव लिखे हैं, जो दूसरों के लिए उपयोगी हो सकते हैं।

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