"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > संरचना बनाम वंशानुक्रम

संरचना बनाम वंशानुक्रम

2024-11-08 को प्रकाशित
ब्राउज़ करें:949

Composition vs. Inheritance

विरासत बनाम। PHP में संरचना ?

जब हम ऑब्जेक्ट-ओरिएंटेड प्रोग्राम करते हैं, तो वंशानुक्रम और संरचना के बीच अंतर को समझना महत्वपूर्ण है:

विरासत
एक वर्ग दूसरे से विरासत प्राप्त करता है, अपने व्यवहार का पुन: उपयोग और विस्तार करता है।

class Motor
{
    public function ligar()
    {
        return "Motor Ligado!";
    }
}

class Carro extends Motor{}

$carro = new Carro();
$carro->ligar();

संघटन
एक वर्ग में ज़िम्मेदारियाँ सौंपने के लिए अन्य वर्गों के उदाहरण शामिल होते हैं। अधिक लचीली प्रणालियाँ बनाने और गहरी विरासत वाली समस्याओं से बचने के लिए अक्सर संरचना को प्राथमिकता दी जाती है।

व्यावहारिक उदाहरण
क्या आपने कभी यह सोचा है कि जब हम कार स्टार्ट करते हैं तो वास्तव में हम इंजन स्टार्ट कर रहे होते हैं? इस तर्क का पालन करते हुए, हम दो ऑब्जेक्ट बना सकते हैं: एक को इंजन कहा जाता है और दूसरे को कार कहा जाता है। इस तरह, कार ऑब्जेक्ट में इंजन ऑब्जेक्ट का एक उदाहरण होगा, जो कार शुरू करने के लिए जिम्मेदार होगा।

कोड

class Motor
{
    public function ligar()
    {
        return "Motor Ligado!";
    }
}

class Carro
{
    private Motor $motor;

    public function __construct(Motor $motor)
    {
        $this->motor = $motor;
    }

    public function ligar()
    {
        return $this->motor->ligar();
    }
}

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

परीक्षण

$motorV4 = new Motor();
$carro = new Carro($motorV4);
echo $carro->ligar(); // Saída: Motor Ligado!

फायदे
यह दृष्टिकोण अधिक लचीला है क्योंकि यह कार की श्रेणी को बदले बिना कार को विभिन्न प्रकार के इंजन (उदाहरण के लिए, V4, V6, या इलेक्ट्रिक इंजन) रखने की अनुमति देता है। यह मॉड्यूलरिटी सिस्टम के रखरखाव और विस्तार की सुविधा प्रदान करती है।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/carloseduardoalvesviana/composition-vs-inheritance-98a?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3