आप 3 वर्गों कि IDisposable लागू है कहो - ए, बी और सी वर्ग ए और बी दोनों वर्ग सी पर निर्भर हैंIDISposable पैटर्न का एक समस्याग्रस्त उदाहरण?
यह कहना सही नहीं होगा कि कक्षाएं एक और निपटान के बी के विशिष्ट कार्यान्वयन() होगा:
public void Dispose() { if (m_C != null) m_C.Dispose(); }
अगर वहाँ है कि साझा सी का एक ही उदाहरण एक का एक उदाहरण और और बी के कहने है, तुम कैसे समस्या यह है कि एक का एक उदाहरण निपटाने को नुकसान होगा पर काबू पाने के हैं वें ई का उदाहरण बी?
अंतिम मिनट परिशिष्ट - यदि बिंदु 2 में यह एक डी कंटेनर है जो सभी उदाहरणों को तत्काल करता है, जो वस्तुओं का निपटान करने के लिए जिम्मेदार हैं? क्या यह कंटेनर स्वयं है? कैसे?
धन्यवाद, urig
जॉन का 1 9 5 प्रतिनिधि है :) –
मेरे परिदृश्य में ए और न ही बी के विशिष्ट मालिक हैं। उदाहरण के लिए कल्पना करें कि सी वास्तविक समय में डेटा को धक्का देता है और ए और बी दोनों इसका उपभोग करते हैं। एक डी कंटेनर ए और बी के लिए तत्काल सी के प्रभारी है, लेकिन इसका निपटान करने का प्रभारी कौन है? – urig
@urig: उस स्थिति में, आप * कब * इसे निपटाना चाहते हैं? मुझे आमतौर पर पता चलता है कि इस बारे में डिजाइन करने के तरीके हैं जो पूरी तरह से समस्या से बचते हैं, लेकिन यह स्थिति पर निर्भर करता है। –