जीयूआई फ्रेमवर्क में आमतौर पर 'व्यू' क्लास का कुछ प्रकार होता है जो स्क्रीन पर खींची गई चीजों का प्रतिनिधित्व करता है, और वह वर्ग आमतौर पर invalidateRect(Rect r)
अपने ड्राइंग क्षेत्र के हिस्से को फिर से तैयार करने की आवश्यकता के रूप में चिह्नित करने के लिए एक तरीका प्रदान करता है । दृश्य के भाग को अद्यतन करने के लिए ग्राहक उस पद्धति को कॉल कर सकते हैं। लेकिन एक दृश्य भी अपनी खुद की विधि कह सकता है, जैसे:
invalidateRect(m_frame);
पूरे क्षेत्र के पुनर्विकास का कारण। उदाहरण के लिए, ऐसा तब हो सकता है जब इसे पहली बार पदानुक्रम में जोड़ा गया हो।
ऐसा करने में कुछ भी गलत नहीं है - दृश्य का फ्रेम एक मान्य आयत है, और दृश्य स्वयं जानता है कि यह स्वयं को फिर से बनाना चाहता है। दृश्य वर्ग एक अलग विधि प्रदान कर सकता है जो कोई पैरामीटर नहीं लेता है और इसके बजाय दृश्य फ़्रेम का उपयोग करता है:
invalidateFrame();
लेकिन सिर्फ इसके लिए एक विशेष विधि क्यों जोड़ें जब आप अधिक सामान्य उपयोग कर सकते हैं invalidateRect()
? या, यदि आपने प्रदान करने का चयन किया है, तो आप invalidateFrame()
शायद इसे अधिक सामान्य के संदर्भ में कार्यान्वित करेंगे invalidateRect()
:
View::invalidateFrame(void)
{
invalidateRect(m_frame)
}
यदि आप पहले से ही इस तक पहुंच रखते हैं, तो चर को विधि पैरामीटर के रूप में क्यों पास करें?
यदि आप विधि को उस आवृत्ति चर पर विशेष रूप से संचालित नहीं करते हैं, तो आपको अपने स्वयं के तरीके के लिए उदाहरण चर को पास करना चाहिए । ऊपर दिए गए उदाहरण में, दृश्य का फ्रेम केवल एक और आयत है जहां तक विधि का संबंध है।invalidateRect()