मिक्सिन को समझना: क्लास एक्सटेंशन के लिए एक मॉड्यूलर दृष्टिकोण
एक मिक्सिन एक सॉफ्टवेयर डिजाइन पैटर्न है जो कई वर्गों की संरचना की अनुमति देता है, प्रदान करता है बेस क्लास की क्षमताओं को सीधे तौर पर इनहेरिट किए बिना बढ़ाने का एक तरीका। इस तकनीक को अक्सर "अमूर्त उपवर्ग" के रूप में जाना जाता है क्योंकि यह वंशानुक्रम की अवधारणा से मिलती-जुलती है लेकिन अधिक लचीले और बारीक दृष्टिकोण के साथ।
यह समझने के लिए कि मिक्सिन कैसे काम करता है, आइए निम्नलिखित उदाहरण की जांच करें:
// Number class
struct Number {
int n;
void set(int v) { n = v; }
int get() const { return n; }
};
// Undoable mixin
template
struct Undoable : public BASE {
int before;
void set(int v) {
before = BASE::get();
BASE::set(v);
}
void undo() { BASE::set(before); }
};
इस उदाहरण में, पूर्ववत मिश्रण पिछले मान सेट को पूर्ववत करने की कार्यक्षमता प्रदान करता है। यह अनिवार्य रूप से एक BASE वर्ग के चारों ओर लपेटता है, जिससे किसी भी वर्ग को इससे विरासत में मिल सकता है और इसकी निर्धारित विधि को पूर्ववत करने की क्षमता प्राप्त हो सकती है।
// ReUndoableNumber वर्ग
टाइपडिफ़ पूर्ववत करें पूर्ववतनंबर;
typedef Redoable
// ReUndoableNumber class
typedef Undoable UndoableNumber;
typedef Redoable ReUndoableNumber;
मिक्सिन विशेष रूप से तब उपयोगी होते हैं जब हम मौजूदा कक्षाओं को ऑर्थोगोनल कार्यक्षमता के साथ विस्तारित करना चाहते हैं जो कक्षा के मूल व्यवहार के लिए प्रासंगिक नहीं हो सकता है। वे पारंपरिक विरासत की तुलना में अधिक मॉड्यूलर और कंपोज़ेबल दृष्टिकोण प्रदान करते हैं, जहां कक्षाओं को अपनी कार्यक्षमता हासिल करने के लिए सीधे मूल वर्ग से विरासत में मिलना चाहिए। अधिक जटिल कक्षाएं बनाएं। यह लचीलापन डेवलपर्स को पारंपरिक विरासत की बाधाओं के बिना, उनकी कक्षाओं को उनकी आवश्यक विशिष्ट कार्यक्षमता के साथ तैयार करने में सक्षम बनाता है। अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3