मैं आपके द्वारा दिए गए उदाहरण के आधार पर आपके भ्रम को समझ सकता हूं। यह वास्तव में एक वर्ग का उपयोग करने का एक खराब तरीका है ... और सिर्फ इसलिए कि एक वर्ग का उपयोग किया जाता है, सिस्टम OOP नहीं बनाता है।
हाइब्रिड के मामले में, वे अपने कार्यों को नामांकित करने के लिए एक वर्ग का उपयोग कर रहे हैं। हाइब्रिड को ध्यान में रखते हुए एक थीम फ्रेमवर्क है , यह इसलिए किया जाता है ताकि चाइल्ड थीम डिवेलपर्स के बिना फंक्शन के नामों का फिर से इस्तेमाल कर सकें। कई मामलों में, एक थीम फ्रेमवर्क (मूल विषय) इतना जटिल है, कई बाल थीम डेवलपर्स कभी भी समझ नहीं पाएंगे कि हुड के नीचे क्या होता है।
यदि हाइब्रिड ने एक वर्ग संरचना का उपयोग नहीं किया है, तो बाल थीम डेवलपर्स को यह जानना होगा कि सभी मौजूदा फ़ंक्शन कॉल क्या थे ताकि वे फिर से नाम का उपयोग करने से बच सकें। और हाँ, आप अपने सभी कार्यों को एक अनूठे स्लग के साथ कर सकते हैं, लेकिन इससे कोड को पढ़ने में कठिन, बनाए रखने में मुश्किल होती है, और स्वाभाविक रूप से गैर-पुन: प्रयोज्य आपको आगे की प्रणालियों का विकास करना चाहिए जो समान कार्यक्षमता का उपयोग करना चाहते हैं।
अपने सवालों के जवाब देने के लिए
WTF? ऐसा करने का क्या मतलब है? जाहिर है आप एक ही समय में एक ही विषय के दो या अधिक उदाहरणों का उपयोग नहीं करेंगे।
नहीं, आप एक ही विषय के दो या अधिक उदाहरणों का उपयोग नहीं करेंगे। लेकिन जैसा मैंने कहा, इस मामले में वर्ग संरचना के बारे में सोचें क्योंकि यह एक पारंपरिक वस्तु उदाहरण नहीं बना रहा है, कार्यों को नाम देना है। एक कक्षा में सब कुछ एक साथ लम्पिंग करना और या तो इसे कॉल करने के तरीकों ( myClass->method();
) या कॉलिंग मेथड्स को सीधे करना ( myClass::method();
) एक पठनीय, पुन: प्रयोज्य फैशन में चीजों को नामांकित करने का एक बहुत ही अच्छा तरीका है।
बेशक आप हमेशा की तरह कुछ का उपयोग कर सकते हैं myClass_method();
, लेकिन यदि आप किसी अन्य कोड में किसी भी कोड का पुनः उपयोग करना चाहते हैं, तो प्लग-इन, या एंटेरो फ्रेमवर्क में आपको अपने सभी उपसर्गों को बदलना होगा। सब कुछ एक वर्ग में रखना क्लीनर है और आपको पुनर्विकास करने की अनुमति देता है और बहुत तेज़ी से फिर से तैयार करता है।
मान लेते हैं कि प्लगइन्स नेमस्पेस (जो हास्यास्पद है) के लिए ऐसा करते हैं, लेकिन विषय का बहाना क्या है? क्या मैं कुछ भूल रहा हूँ?
अधिकांश स्थितियों में मैं आपसे सहमत होना चाहता हूँ। हालांकि, वह बहुमत जल्दी से कम कर रहा है। मैं मल्टीसाइट इंस्टॉलेशन पर कई साइटों को होस्ट करता हूं जो एक ही थीम के बदलाव का उपयोग करते हैं। मामूली अंतर के साथ एक ही विषय को बार-बार बनाने के बजाय, मेरे पास मूल विषय के लिए एक एकल "वर्ग" है और सभी बाल विषय उस वर्ग का विस्तार करते हैं। यह मुझे पूरे नेटवर्क में एकरूपता बनाए रखने की सामान्य भावना बनाए रखते हुए प्रत्येक साइट के लिए कस्टम कार्यक्षमता को परिभाषित करने की अनुमति देता है।
एक तरफ, थीम डेवलपर्स अपनी कार्यक्षमता को नाम देने के लिए एक वर्ग-आधारित दृष्टिकोण का चयन कर सकते हैं (जो कि अगर आप एक ऐसे वातावरण में काम करते हैं जहां आप बार-बार एक ही कोड के विखंडू का उपयोग करते हैं तो यह हास्यास्पद नहीं है)। दूसरी ओर, थीम डेवलपर बाल विषयों द्वारा आसान विस्तार के लिए एक क्लास-आधारित दृष्टिकोण चुन सकते हैं।
इस तरह एक विषय कोडिंग का क्या फायदा है?
यदि आप केवल अपनी साइट पर हाइब्रिड का उपयोग कर रहे हैं, तो अंतिम उपयोगकर्ता के रूप में आपके लिए लाभ जानने के लिए बहुत कम है। यदि आप हाइब्रिड के लिए एक बाल विषय का निर्माण कर रहे हैं तो नाम स्थान और विस्तार से लाभ हैं। यदि आप ThemeHybrid के लिए काम करते हैं , तो लाभ आपकी अन्य परियोजनाओं (प्रोटोटाइप, लेविथान, आदि) में त्वरित, कुशल कोड के पुन: उपयोग में निहित है।
और यदि आप एक थीम डेवलपर हैं जो हाइब्रिड की एक विशिष्ट विशेषता को पसंद करते हैं, लेकिन पूरे विषय को नहीं, तो लाभ आपके गैर-हाइब्रिड प्रोजेक्ट में त्वरित, कुशल कोड पुनः उपयोग में है (यह मानते हुए कि यह जीपीएल भी है)।