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