जैसा कि अन्य उत्तरों में बताया गया है, यह स्वाभाविक रूप से खराब डिज़ाइन नहीं है। यह नेस्टेड वर्गों और उन लोगों के बीच तंग युग्मन बना सकता है जो उन्हें घोंसला बनाते हैं, लेकिन संदर्भों को डिजाइन करने के लिए मूल्य प्रदान करने पर युग्मन को ढीला करना एक वैध विकल्प नहीं हो सकता है।
एक संभव समाधान नियंत्रक वर्ग में नेस्टेड संदर्भों को "समतल" करना है।
नेस्टेड ऑब्जेक्ट्स के माध्यम से कई बार एक पैरामीटर पास करने के बजाय, आप नेस्टेड ऑब्जेक्ट्स के सभी के लिए नियंत्रक वर्ग के संदर्भों में बनाए रख सकते हैं।
यह वास्तव में कैसे लागू किया जाता है (या यदि यह एक वैध समाधान है) प्रणाली के वर्तमान डिजाइन पर निर्भर है, जैसे:
- क्या आप नियंत्रक में नेस्टेड वस्तुओं के नक्शे के कुछ प्रकार को बनाए रखने में सक्षम हैं इसके बिना यह बहुत जटिल है?
- जब आप पैरामीटर को उपयुक्त नेस्टेड ऑब्जेक्ट को पास करते हैं, तो नेस्टेड ऑब्जेक्ट तुरंत पैरामीटर को पहचान सकता है, या नेस्टेड ऑब्जेक्ट्स से गुजरते समय अतिरिक्त कार्यक्षमता उत्पन्न हो रही थी?
- आदि।
यह एक ऐसा मुद्दा है जो मुझे GXT क्लाइंट के लिए MVC डिज़ाइन पैटर्न में मिला है। हमारे जीयूआई घटकों में कई परतों के लिए नेस्टेड जीयूआई घटक शामिल थे। जब मॉडल डेटा को अपडेट किया गया था, तो हमने इसे कई परतों से गुजरते हुए समाप्त कर दिया, जब तक कि यह उपयुक्त घटक (एस) तक नहीं पहुंच गया। इसने GUI घटकों के बीच अवांछित युग्मन पैदा किया क्योंकि अगर हम मॉडल डेटा को स्वीकार करने के लिए एक नया GUI घटक वर्ग चाहते थे, तो हमें उन सभी GUI घटकों में मॉडल डेटा को अपडेट करने के लिए तरीके बनाने थे जिनमें नई कक्षा सम्मिलित थी।
इसे ठीक करने के लिए, हमने व्यू क्लास में सभी नेस्टेड GUI घटकों के संदर्भों का एक नक्शा रखा, ताकि जब भी मॉडल डेटा अपडेट किया गया, व्यू अपडेट किए गए मॉडल डेटा को सीधे GUI घटकों को भेज सके, जिन्हें इसकी आवश्यकता थी, कहानी का अंत । इसने अच्छी तरह से काम किया क्योंकि प्रत्येक जीयूआई घटक के केवल एक ही उदाहरण थे। मैं देख सकता था कि यह इतनी अच्छी तरह से काम नहीं कर रहा है अगर कुछ GUI घटकों के कई उदाहरण हैं, जिससे यह पहचानना मुश्किल है कि किस कॉपी को अपडेट करने की आवश्यकता है।