मैं सी # .NET में किसी व्यवसाय समस्या पर काम कर रहा हूं। मेरे पास सी और डब्ल्यू नामक दो वर्ग हैं जिन्हें अलग-अलग समय पर स्वतंत्र रूप से तुरंत चालू किया जाएगा।कक्षाओं के लिए सी # में एक अच्छा डिजाइन पैटर्न क्या है जो अन्य वर्गों को संदर्भित करने की आवश्यकता है?
कक्षा सी के किसी ऑब्जेक्ट को कक्षा डब्ल्यू के एन ... एन ऑब्जेक्ट्स के संदर्भों की आवश्यकता होती है, यानी एक सी ऑब्जेक्ट में एन डब्ल्यू ऑब्जेक्ट्स हो सकते हैं।
प्रत्येक डब्ल्यू ऑब्जेक्ट में कक्षा सी के बिल्कुल 1 ऑब्जेक्ट का संदर्भ होना आवश्यक है, यानी एक डब्ल्यू ऑब्जेक्ट एक सी ऑब्जेक्ट में निहित है।
कक्षा सी का एक वस्तु आमतौर पर पहले तत्काल होता है। बाद के बिंदु पर, इसकी डब्ल्यू सामग्री की खोज की जाती है, और तत्काल। इस बाद के बिंदु पर, मुझे एक दूसरे के लिए सी और डब्ल्यू वस्तुओं को संदर्भित करने की आवश्यकता है।
इसके लिए एक अच्छा डिजाइन पैटर्न क्या है? मेरे पास वास्तव में ऐसे मामले हैं जहां मेरे पास तीन या चार वर्ग शामिल हैं लेकिन हम इसे सरल रखने के लिए दो कक्षाओं के बारे में बात कर सकते हैं।
मैं कुछ सरल की तरह की सोच रहा था:
class C
{
public List<W> contentsW;
}
class W
{
public C containerC;
}
इस पल के लिए काम करेंगे, लेकिन मैं सभी संदर्भों और उनकी वैधता का ट्रैक रखने के कोड भी पर्याप्त मात्रा में लिखने के लिए होने का पूर्वानुमान कर सकते हैं। मैं केवल कंटेनर के उथले ताज़ा करने और सभी संदर्भित कक्षाओं के गहरे ताज़ा करने के लिए सड़क को कोड लागू करना चाहता हूं। क्या कोई अन्य दृष्टिकोण है और उनके फायदे क्या हैं?
11/3: पर संपादित करें अच्छे उत्तरों और अच्छी चर्चा के लिए सभी को धन्यवाद। आखिरकार मैंने जोप का जवाब चुना क्योंकि वह जो करना चाहता था उसके करीब आया, लेकिन अन्य उत्तरों ने भी मदद की। एक बार फिर धन्यवाद!
सी और डब्ल्यू को पार संदर्भित कैसे किया जाता है? क्रॉस संदर्भित होने से पहले "डब्ल्यू" कौन रखता है? –
जैसा कि कीथ ने मेरे जवाब में बताया, हमें यह पूछना है: इन वस्तुओं के सापेक्ष जीवनकाल एक-दूसरे के साथ क्या हैं? –