वहाँ कैसे एक संरचना डिजाइन प्रतिनिधिमंडल से अलग हो सकता के रूप में कार्यान्वयन के संदर्भ में कोई अंतर है। उदाहरण के लिए नीचे दिया गया कोड प्रतिनिधिमंडल कर रहा है क्योंकि उपयोगकर्ता बी का उपयोग किये बिना बना वस्तु (यानी "ए") तक नहीं पहुंच सकता है। इसलिए, उपयोगकर्ता को कक्षा बी के इंटरफेस का आह्वान करना होगा और फिर "कक्षा बी" इसे प्रतिनिधिमंडल बनाने के लिए "कक्षा ए" के उचित इंटरफेस का आह्वान करेगा। इसका कोई मतलब भी है क्या ?संरचना बनाम प्रतिनिधिमंडल
Class A {
friend class B;
private:
A(){}; //dont want user to instantiate this class object since it wont sense without any context. Just like a room with no house.
void PrintStructure(){};
};
Class B{
public:
void PrintStructure(){a.PrintStructure();} //delegate
private:
A a; //composition
};
रचना का तात्पर्य हैं कि बच्चे माता-पिता तो के संदर्भ बिना नहीं हो सकता उपयोगकर्ता कभी नहीं की रचना वर्ग की एक वस्तु बनाने के लिए अनुमति दी जानी चाहिए? उदाहरण के लिए मेरे परिष्कृत उदाहरण कक्षा ए {दोस्त कक्षा बी होगा; निजी: ए() {}; शून्य प्रिंटस्ट्रक्चर() {}; }; कक्षा बी {सार्वजनिक: शून्य प्रिंटस्ट्रक्चर() {ए। प्रिंटर संरचना();} // प्रतिनिधि निजी: ए; // रचना}; अब कक्षा बी में कक्षा ए है। उपयोगकर्ता को कक्षा ए व्यवहार को बदलने के लिए केवल कक्षा बी इंटरफेस का उपयोग करना चाहिए और कक्षा बी को ऐसे कार्यों को कक्षा ए कार्यों में प्रस्तुत करना चाहिए। क्या यह डिजाइन अच्छा है? –
@ फ्रैंक: मित्र वर्ग इस तरह के रिश्ते को लागू करने का एक तरीका है। वे हालांकि मैं पक्ष नहीं कर रहा हूँ। एक और सुरुचिपूर्ण समाधान है कि कक्ष के लिए कन्स्ट्रक्टर को हाउस के उदाहरण की आवश्यकता होती है, जो उसके बाद "माता-पिता" बन जाती है। – cletus
आप मेरे उदाहरण में ऐसा कुछ कैसे कोड करेंगे? एक के अपने संस्करण एक शुद्ध आभासी समारोह है: इसके अलावा मैं के बाद से यह बी –