डबल मीनिंग से बचें
आपने जान-बूझकर एक ऐसे शब्द का चयन किया है जिसका एक और अर्थ है, और वह पहला निर्णय समस्या है। एक टन ऐसे शब्द हैं जो प्रोग्रामर के लिए समस्याग्रस्त हैं। एक और उदाहरण होगा phone
। आप phone
किसी को, या आप phone
अपनी जेब में हो सकता है ।
गेटर्स एंड सेटर्स का उपयोग करें
अधिकांश वस्तुओं के लिए मानक नामकरण संपत्तियों के लिए गेटर्स / सेटिंग्स के तरीके हैं।
Battery.Charge // would be a property
Battery.setCharge(value) // would set the property
Battery.getCharge() // would get the property
प्रॉपर्टीज स्टेट्स नॉट नॉन
मुझे लगता है कि आपको संज्ञा के रूप में ऑब्जेक्ट गुणों को वर्गीकृत करके गलत किया गया है, और चर भी राज्यों के बारे में सोचा जा सकता है। वे अपने अस्तित्व के स्थानीय दायरे के लिए प्रासंगिक हैं।
आप उस मूल्य का वर्णन कर सकते हैं जो वे संज्ञा के रूप में रखते हैं, लेकिन मुझे यकीन नहीं है कि सभी मामलों में यह सच है।
OOP शब्दावली में वस्तु गुण उस वस्तु की स्थिति का वर्णन करते हैं। आपके मामले में Battery
एक वस्तु है, और यह Charge
एक राज्य है। तो यह वस्तु की एक संपत्ति होगी, लेकिन यह इस संदर्भ पर निर्भर करता है कि इसका उपयोग कैसे किया जाता है।
यदि आपको Charge
बैटरी को सक्षम करने की आवश्यकता है , और यह भी पता है कि यह वर्तमान क्या Charge
है, तो आपको एक समस्या है।
प्रसंग को लागू करने के लिए स्कोप का उपयोग करना
संदर्भ वह है जो स्पष्ट करेगा कि आप किस शब्द के अर्थ को व्यक्त करने के लिए एक विधि या संपत्ति चाहते हैं। स्कोप ऑब्जेक्ट के बाहर से किसी संपत्ति / विधि की पहुंच स्थापित कर रहा है।
Batter._charge // a hidden private property
Battery.setCharge(value) // would set the private property
Battery.getCharge() // would get the private property
Battery.Charge() // would perform the Charge action
तरीके क्रिया हैं
आप एक क्रिया के रूप में एक वस्तु की विधि का वर्णन कर सकते हैं, लेकिन शब्द कार्रवाई बेहतर अनुकूल है। ओओपी शब्दावली में आप उनके तरीकों का उपयोग करते हुए वस्तुओं पर कार्रवाई करते हैं। किसी वस्तु की संपत्ति को वस्तु के बाहर से संशोधित करना बुरा है। यह एक ऐसी विधि को कॉल करने के लिए पसंद किया जाता है जो आवश्यक क्रियाओं को करता है जिसके कारण यह बदलने की स्थिति है।
शब्द Charge
एक क्रिया है, लेकिन यह एक संज्ञा भी है। जब किसी क्रिया की विधि का उपयोग किया जाता है तो यह स्पष्ट हो जाता है कि क्रिया का उपयोग किया जा रहा है Battery.Charge(....)
।
लेकिन, संदर्भ बहुत महत्वपूर्ण है। जबकि शब्द Charge()
एक क्रिया है यह उतना सार्थक नहीं है जितना कि startCharging()
।
के लिए मान्य तरीकों Battery
शामिल हो सकते हैं Charging
, Discharging
, setCharge
, getCharge
, hasCharge
, Discharge
और Charged
।
सरल एक शब्द विधियां अक्सर स्पष्ट रूप से अपने कार्यों को स्पष्ट रूप से नहीं बताती हैं, लेकिन कुछ मामले हैं जैसे open
और close
जहां थोड़ा व्याख्या करना आवश्यक है।
तो वास्तव में एक सही उत्तर नहीं है कि इस प्रकार के गुणों / विधियों का नाम कैसे दिया जाए। सिवाय इसके कि आपको उपरोक्त तकनीकों का बुद्धिमानी से उपयोग करने की आवश्यकता है ताकि यह सुनिश्चित हो सके कि कोई भ्रम नहीं है।