2010-02-10 13 views
5

क्या डेल्फी 2010 में विस्तारित आरटीटीआई रन समय पर Class and Record Helpers परिभाषित करने का एक तरीका प्रदान करता है?आरटीटीआई का उपयोग कर रनटाइम पर डेल्फी में सभी कक्षा सहायक खोजें?

जहां तक ​​मुझे डेल्फी does not show a hint or warning पता है जब कक्षा के लिए एक से अधिक कक्षा सहायक परिभाषित किया जाता है, तो वर्ग सहायक पहचान 'गुणवत्ता आश्वासन' में सहायक दिनचर्या हो सकती है।

पेज। बेशक मुझे पता है कि मुझे कभी भी स्रोत कोड के बिना तीसरे पक्ष के घटकों या पुस्तकालयों का उपयोग नहीं करना चाहिए, जिससे कक्षा सहायक मदद करने वालों को grep करना आसान हो जाएगा।

+2

यह कोई फर्क नहीं पड़ता एक से अधिक सहायक रन टाइम पर परिभाषित किया गया है या नहीं। यदि आप सबसे हाल ही में परिभाषित एक के अलावा एक सहायक द्वारा पेश की गई विधियों का उपयोग करने का प्रयास करते हैं, तो आपका कोड संकलित भी नहीं होगा, इसलिए * कोई * रन टाइम नहीं है। –

+0

@Rob: लिंक किए गए पृष्ठ (टर्बोचार्जिंग डेल्फी 2010) से उद्धरण: "आप एक वर्ग के प्रकार के साथ कई वर्ग सहायकों को परिभाषित और संबद्ध कर सकते हैं" - इसका मतलब यह है कि यदि मैं एक वर्ग के साथ एकाधिक श्रेणी सहायकों को जोड़ता हूं, तो कोड संकलित नहीं होगा अब? – mjn

+1

आप कई सहायक बना सकते हैं, लेकिन एक समय में केवल एक ही प्रभावी होगा। कृपया जिस वाक्य को आपने अभी उद्धृत किया है उसे पढ़ना जारी रखें: "स्रोत कोड में किसी भी विशिष्ट स्थान पर केवल शून्य या एक वर्ग सहायक लागू होता है। निकटतम दायरे में परिभाषित कक्षा सहायक लागू होगा। क्लास हेल्पर स्कोप सामान्य डेल्फी फैशन (यानी दाएं यूनिट के उपयोग खंड में छोड़ा गया) " –

उत्तर

9

चूंकि कक्षा सहायक केवल एक वर्ग पर लागू होते हैं, इस आधार पर कि कौन सा सहायक क्षेत्र में "निकटतम" है, एक वर्ग बस यह नहीं जान सकता कि एक सहायक मौजूद है। उदाहरण के लिए, आप अपनी इकाई में एक वर्ग सहायक को दूसरी इकाई से कक्षा में "मदद" करने के लिए बना सकते हैं जिसके लिए आपके पास कोई स्रोत नहीं है। दूसरी इकाई में कक्षा में किसी भी सहायक के बारे में कोई जानकारी नहीं है। यदि यह ज्ञान था, तो इसे इसे ध्यान में रखने के लिए पुन: संकलित करना होगा ... जो अगले अंक की ओर जाता है;

इस पर विचार करें: आपके पास एक सामान्य इकाई में घोषित कक्षा हो सकती है जिसका उपयोग आपके पूरे एप्लिकेशन में कई अन्य इकाइयों द्वारा किया जाता है। उन इकाइयों में से प्रत्येक में आप विभिन्न तरीकों और "सहायक" कार्यों के साथ इस आम वर्ग के लिए एक नया सहायक घोषित करते हैं। चूंकि प्रत्येक इकाई अन्य इकाइयों के बारे में कुछ भी नहीं जानता है जो अपने स्वयं के सहायक घोषित करते हैं, डिजाइन द्वारा, किसी भी तरह से सभी सहायकों को सहारा देने का कोई तरीका नहीं है। अब मान लें कि यह आम इकाई अब एक पूर्व संकलित पैकेज सीमा में रहती है।

क्लास हेल्पर्स मोहक छोटे गर्मी हैं। वे प्रसिद्धि और भाग्य का वादा करते हैं, लेकिन अक्सर वे मृत्यु और विनाश को बारिश करते हैं ... आप अपने विल्स पर खुद को छोड़ने के बाद।

इस कारण से, भाषा में उनके परिचय ने एक विशिष्ट ढांचे में कार्यक्षमता को पेश करने के लिए "प्रकट" करने की क्षमता को बहुत विशिष्ट समस्याओं का हल किया। जब तक आप "केवल एक सहायक" नियम का पालन करते हैं, और उस पथ से भटक नहीं जाते हैं, तो आप अपेक्षाकृत बेकार हो सकते हैं। भले ही, आपको इन जलों के माध्यम से नेविगेट करने के लिए बियोवुल्फ़, लियोनाइडस (स्पार्टा के), और फ्रोडो बागिन के संयुक्त आंतों की दृढ़ता की आवश्यकता होगी।

यह देखते हुए कि, यहां आरएडी स्टूडियो टीम पर, हम कभी भी कक्षा सहायक का उपयोग करने के लिए घृणित हैं जहां इसे टाला जा सकता है। और जब हम उन्हें इस्तेमाल करते हैं, एक उचित व्यूह बनाई है इससे पहले कि हम भी शुरू ...

यहां ड्रेगन हो ...

+3

ड्रैगन के लिए +1। :-) ठीक है, आपको ** आंतों ** नामक कक्षा सहायकों के लिए एक नई दृश्यता पेश करनी चाहिए थी और यह आर एंड डी टीम के लिए आरक्षित है और रक्तस्राव किनारे पर कुछ पैलाडिन हैं ...

+2

हां पता है, मैं हमेशा सोचा है कि यह क्यों लागू किया गया था। कक्षा सहायकों को इतना डरावना क्यों होना चाहिए कि डेल्फी टीम भी उनसे डरती है?किसी भी समय किसी वर्ग पर केवल एक का उपयोग करने के लिए हम क्यों प्रतिबंधित हैं? –

+0

इसे मुख्य रूप से भाषा के स्कॉइंग नियमों के साथ करना है। हम उन नियमों को तोड़ने वाले नहीं थे, क्योंकि इससे भ्रम की एक बड़ी चक्की पैदा होती। वे डरावने नहीं हैं, अगर और केवल अगर आप वास्तव में नियमों और समस्याओं को समझते हैं। समस्या तब होती है जब आप हेल्पर्स का उपयोग अपने ढांचे के एपीआई के अभिन्न अंग के रूप में करते हैं। फिर आप द्वंद्वयुद्ध सहायकों के साथ कुश्ती का वास्तविक जोखिम चलाते हैं। –

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