संक्षिप्त जवाब:
- विधि के नाम आंतरिक कार्यान्वयन लेकिन अपेक्षित व्यवहार को प्रतिबिंबित करने के लिए नहीं बनाए गए हैं।
लंबा जवाब:
haveChildren()
नाम होना चाहिए hasChildren()
।
इसके अलावा, मैं hasChildren()
आवश्यक रूप से एक बूलियन वर्ग के सदस्य के लिए गेटटर के रूप में नहीं देखता हूं । मुझे लगता है कि इस तरह की विधि से पता चलेगा कि प्रकार Collection
का कोई सदस्य खाली है या नहीं ।
डिफ़ॉल्ट नाम एक आईडीई उत्पन्न गेटर्स को देता है और बसने वाले को पत्थर में स्थापित कानून होने के लिए अधिमानित नहीं किया जाता है।
एक और बिंदु: इंटरफेस में अभी तक लागू होने वाले तरीकों के नाम हैं।
यदि आंतरिक कार्यान्वयन को प्रतिबिंबित करने के लिए विधि के नाम रखे गए थे, तो कोई व्यक्ति कभी भी इंटरफ़ेस कैसे डिज़ाइन कर पाएगा? इंटरफेस का कार्यान्वयन नहीं है और न ही वे पहले से जानते हैं कि कार्यान्वयनकर्ता हुड के तहत क्या करेंगे।
उदाहरण के लिए Iterator
जावा में इंटरफेस लें ।
जब आप को लागू Iterator
होने के बावजूद, एक बूलियन सदस्य नामित किया गया है next
, जिसका नाम आप बदलना supossed नहीं कर रहे हैं hasNext()
करने के लिए isNext()
या isHavingNext()
। यह एक कार्यान्वयन विवरण है। वास्तव में, मैंने लागू किया है Iterator
और जो मैं करता हूं, वह उस प्रकार का सदस्य है जिसके पास मेरी कक्षा की सूची है, जिसका नाम next
(बूलियन नहीं) है। hasNext()
फिर लौटता है next!=null
।
इसे भी देखें:
class patient {
private boolean pulse;
private boolean breaths:
public boolean isDead(){ return (!pulse & !breaths);}
}
ध्यान दें कि isDead()
कोई सामान्य गेट्टर नहीं है।
वे क्या हैं के लिए IDEs के उत्पादकता उपकरण लें।
parent
तो काम करेगा।