मेरे पास दो उदाहरण हैं जो आप आम तौर पर एक उदाहरण में समग्र कक्षा आरेख में देखते हैं।
* GetDescendents
* GetChild (int)समग्र पैटर्न डिजाइन प्रश्न
एक सामान्य उदाहरण फ़ाइलें और निर्देशिकाएँ जा रहा है, मुझे लगता है कि के साथ रह सकते हैं। आइए मान लें कि ब्याज का संचालन आकार है, इसलिए फ़ाइल का वास्तविक आकार है और निर्देशिका का आकार गेटडिसेन्टेंट्स के पुनरावर्ती पुनरावृत्ति से प्राप्त होता है। अब तक सब ठीक है। मेरा प्रश्न क्लाइंट के GetDescendents के उपयोग के साथ करना है। मान लें कि आपको किसी निर्देशिका में फ़ाइलों की आवश्यकता है जो कुछ दिए गए ऑपरेशन के लिए छवियां हैं। तो व्यावहारिक रूप से, आप ImageFiles को वापस करने के लिए GetDescendents और बच्चों के कुछ संयोजन का उपयोग करते हैं (इस पर निर्भर करता है कि क्लाइंट सभी नेस्टेड छविफाइल चाहता था या बस रूट स्तर पर)।
तो प्रश्न संख्या एक है, क्या आपके पास क्लाइंट को समझने के विरोध में समग्र पर GetImageFiles विधि नहीं होगी? और ऐसा मानते हुए, रचना के बाहर क्लाइंट कॉलर्स (जैसे ImageViewer) को बेनकाब करने के लिए GetDescendents कभी व्यावहारिक है?
GetChild (int) के बारे में दूसरा प्रश्न; क्या एक बच्चे को वापस करने के लिए एक सामान्य स्थिति सूचकांक है? GetDescendents में गहराई का एक स्तर? क्लाइंट उस विधि का उपयोग कैसे करेगा इसका एक उदाहरण क्या होगा?
चीयर्स,
Berryl
बिल्कुल। मेरा सवाल यह है कि यह कभी भी * उन ग्राहकों को बच्चों के संचालन का पर्दाफाश करने के लिए समझ में आता है जो संरचना का हिस्सा नहीं हैं, या कम से कम इसके साथ बहुत घनिष्ठ संबंध हैं - यानी, वे क्लाइंट उपभोग्य योग्य ऑप बनाने के लिए आंतरिक संचालन हैं जैसे GetFilesOfType()। – Berryl
@ बेरेल: यह आपकी कक्षा का प्रतिनिधित्व करने पर निर्भर करता है। "पैटर्न" केवल एक कार्यान्वयन विस्तार है, महत्वपूर्ण बात "अवधारणा" है। –