java - Circular references in Nation-Town-Citizens chain -


मेरे पास तीन वर्ग हैं, राष्ट्र , शहर , और < strong> नागरिक । एक देश कस्बों में रहते हैं, और एक शहर में नागरिक होते हैं।

  सार्वजनिक वर्ग राष्ट्र {सेट & lt; टाउन & gt; कस्बों; } सार्वजनिक वर्ग टाउन {सेट & lt; नागरिक & gt; नागरिकों; } सार्वजनिक वर्ग के नागरिक [}  

कभी-कभी मुझे उस देश को जानना चाहिए जो नागरिक का है। हालांकि, उपरोक्त क्रियान्वयन के साथ, यह जानने का कोई तरीका नहीं है कि, जब तक कि मैं ऐसा न करे:

  सार्वजनिक वर्ग राष्ट्र {सेट & lt; Town & gt; कस्बों; } सार्वजनिक वर्ग टाउन {सेट & lt; नागरिक & gt; नागरिकों; अंतिम राष्ट्र राष्ट्र; सार्वजनिक शहर (राष्ट्र राष्ट्र) {this.nation = राष्ट्र; }} सार्वजनिक वर्ग के नागरिक (अंतिम टाउन शहर; सार्वजनिक नागरिक (टाउन टाउन) {this.town = शहर; } सार्वजनिक राष्ट्र getNation () {this.town.nation लौटें; }}  

मुझे अक्सर "परिपत्र संदर्भ" से दूर रहने का चेतावनी दी जाती है। क्या यह एक परिपत्र संदर्भ का गठन करता है? और यदि हां, तो क्या इसे टालना चाहिए? और अगर इसे टाला जाना चाहिए, तो इस समाधान का कोई विकल्प क्या है?

मूल कार्यान्वयन के साथ, यह

इसके लिए आपको

  1. यह निर्धारित करने के लिए कि कौन सा शहर नागरिक का है, और
  2. किस राष्ट्र में उस शहर का समावेश है।

तो कहीं भी अपने मुख्य वर्ग में आपको किसी राष्ट्र के विवरण के लिए निम्नलिखित कार्य करने की आवश्यकता होगी

  राष्ट्र .get (शहर बनाओ। (नागरिकों को। (व्यक्ति))) - // - & gt; आपको राष्ट्र विवरण देता है  

Comments

Popular posts from this blog

python - Strange behavior using PyQt4's 'pyqtSlot' decorator before another decorator -

c# - UnhandledExceptionMode.ThrowException for AppDomain.UnhandledException -

c# - Process.Kill() returns access denied -