अंगूठे का एक अच्छा नियम यह है कि विधि के नाम क्रिया या ऐसे होने चाहिए, जैसे कि आप उन्हें ( self
मानक पायथन सम्मेलन में, this
अधिकांश अन्य भाषाओं में) कहते हैं।
इस नियम से, file.close
गलत तरह का है, जब तक कि आप उस मानसिक मॉडल के साथ नहीं जाते हैं जो फ़ाइल स्वयं बंद हो जाती है, या यह कि file
ऑब्जेक्ट फ़ाइल का प्रतिनिधित्व नहीं करता है, बल्कि फ़ाइल हैंडल या किसी प्रकार की प्रॉक्सी ऑब्जेक्ट को संभालता है।
एक पंचिंग बैग कभी भी खुद को घूंसा नहीं मारता है, इसलिए punchingBag.punch()
यह गलत भी है। be_punched()
तकनीकी रूप से सही है, लेकिन बदसूरत है। receive_punch()
काम कर सकते हैं, या handle_punch()
। एक अन्य दृष्टिकोण, जावास्क्रिप्ट में काफी लोकप्रिय है, इस तरह के तरीके कॉल को घटनाओं के रूप में माना जाता है, और वहां होने वाले अधिवेशन को इवेंट नाम के साथ जाना है, जो कि 'ऑन' के साथ उपसर्गित है, इसलिए यह होगा on_punched()
या on_hit()
। वैकल्पिक रूप से, आप उस अधिवेशन को अपना सकते हैं जिसमें पिछले प्रतिभागी निष्क्रिय आवाज़ का संकेत देते हैं, और उस सम्मेलन से, विधि का नाम सिर्फ होगा punched()
।
विचार करने के लिए एक और पहलू यह है कि क्या पंचिंग बैग वास्तव में जानता है कि यह क्या मारा: क्या इससे कोई फर्क पड़ता है कि क्या आप इसे पंच करते हैं, इसे छड़ी से मारते हैं, या ट्रक के साथ इसमें भागते हैं? यदि हां, तो क्या अंतर है? क्या आप किसी तर्क के लिए अंतर को उबाल सकते हैं, या आपको विभिन्न प्रकार की प्राप्त सजा के लिए अलग-अलग तरीकों की आवश्यकता है? एक सामान्य पैरामीटर के साथ एक एकल विधि शायद सबसे सुरुचिपूर्ण समाधान है, क्योंकि यह कम युग्मन डिग्री रखता है, और इस तरह के एक विधि कहा जाता है नहीं किया जाना चाहिए punched()
या handle_punch()
की तरह अधिक सामान्य कुछ है, बल्कि receive_hit()
। जगह में इस तरह की विधि के साथ, आप सभी प्रकार के अभिनेताओं को लागू कर सकते हैं जो पंचिंग बैग को हिट कर सकते हैं, बिना पंचिंग बैग को बदले।