संरचना अधिक जटिल बनाने के लिए सरल प्रकारों को संयोजित करने के लिए संदर्भित करती है। अपने उदाहरण में, रचना हो सकता है:
Animal:
Skin animalSkin
Organs animalOrgans
Mammal:
private Animal _animalRef
Hair/fur mammalFur
warm-blooded-based_cirulation_system heartAndStuff
Person:
private Mammal _mammalRef
string firstName
string lastName
लाभ इस दृष्टिकोण के लिए है जो:
Animal:
Skin animalSkin
Organs animalOrgans
Mammal::Animal:
Hair/fur mammalFur
warm-blooded-based_cirulation_system heartAndStuff
Person::Mammal:
string firstName
string lastName
आप पूरी तरह से रचना जाना (और सभी विरासत से छुटकारा पाने के) यह इस प्रकार दिखाई देगा चाहता है तो Mammal
और Person
प्रकार उनके पिछले माता-पिता के इंटरफ़ेस के अनुरूप नहीं हैं। यह एक अच्छी बात हो सकती है क्योंकि कभी-कभी सुपरक्लास में परिवर्तन उप-वर्गों पर गंभीर प्रभाव डाल सकता है। वे इन कक्षाओं के अपने निजी उदाहरणों के माध्यम से इन कक्षाओं के गुणों और व्यवहारों तक पहुंच सकते हैं, और यदि वे इन पूर्व-सुपरक्लास व्यवहारों का पर्दाफाश करना चाहते हैं, तो वे उन्हें सार्वजनिक विधि में आसानी से लपेट सकते हैं।
मैं यहाँ अच्छे उदाहरण के साथ एक अच्छा लिंक मिल गया: http://www.artima.com/designtechniques/compoinh.html
तो क्या मैं यह कह सकता हूं: "संरचना तब होती है जब मैं 'कक्षा बी' के अंदर 'कक्षा ए' का ऑब्जेक्ट बनाता हूं (' कक्षा ए' से 'कक्षा बी' के उप-वर्ग के बजाय)। " ? – thesummersign
ओह। ठीक है इसे 'w69rdy' बाद में जवाब दिया। हाँ मैं यह कह सकता हूँ। – thesummersign