2009-10-12 18 views
7

नामांकन बूलियन गुणों के लिए Framework Design Guideline क्या है? यदि कोई नहीं है, तो आपकी सिफारिश क्या है?बूलियन गुणों का नामकरण करने के लिए एफडीजी क्या है?

मान लें कि मेरे पास User कक्षा है, और मुझे ऐसी संपत्ति की आवश्यकता है जो निर्दिष्ट करता है कि उपयोगकर्ता सक्षम है या नहीं। ये विकल्प मैं के बारे में सोच सकते हैं:

  • सक्षम
  • सक्षम
  • IsEnabled
  • अक्षम
  • विकलांग
  • IsDisabled

इसके अलावा, अगर बीएल का कहना है कि उपयोगकर्ता को डिफ़ॉल्ट रूप से अक्षम किया जाना चाहिए और स्पष्ट रूप से सक्षम होना चाहिए, क्या मुझे 'सक्षम' भिन्नता, सह nsidering कि System.Boolean के लिए डिफ़ॉल्ट मान false है?

उत्तर

8

फ्रेमवर्क डिज़ाइन दिशानिर्देश (ब्रैड एब्राम्स और क्रिज़्ज़टॉफ कैवालिना) Enabled या IsEnabled (सेक्शन 3.6.2) का उपयोग करने के लिए कहते हैं। वे सकारात्मक वाक्यांशों (यानी कैंटसेक के बजाय कैनसेक) का उपयोग करने के लिए कहते हैं, और सबसे अधिक पढ़ने योग्य संस्करण का उपयोग करने के लिए (यानी बनाया गया है ICreated से अधिक पठनीय है)।

मैं false के डिफ़ॉल्ट मान के साथ व्यक्तिगत रूप से Enabled का उपयोग करता हूं। User.Enabled अच्छी तरह से पढ़ता है और इसका अर्थ क्या है इसका स्पष्ट है।

+0

यह दिलचस्प है कि माइक्रोसॉफ्ट से कुछ कोड इस दिशानिर्देश का पालन नहीं करते हैं, उदा। System.Web.Mvc.MvcHandler की एक स्थिर संपत्ति DisableMvcResponseHeader है। वे अक्षम करने का उपयोग क्यों करते थे? ऐसा इसलिए है क्योंकि यह डिफ़ॉल्ट रूप से सक्षम है और बूल डिफ़ॉल्ट रूप से गलत है, इसलिए यह डिफ़ॉल्ट रूप से अक्षम नहीं है? –

2

मैं "अक्षम" भिन्नता से बचूंगा, क्योंकि "अक्षम = सत्य" की तुलना में एक डबल नकारात्मक "सक्षम = सत्य" को समझना बहुत मुश्किल है।

मैं "सक्षम" क्रिया के लिए एक संपत्ति के लिए एक विशेषण फ़ॉर्म भी पसंद करूंगा, जो एक बेहतर विधि नाम होगा।

जो इसे "सक्षम" या "isEnabled" तक सीमित करता है, जो शायद व्यक्तिगत शैली & सम्मेलन का मामला है। उत्तरार्द्ध जोर देता है कि यह एक बूल है; पूर्व अधिक संक्षिप्त है।

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