आप जो वर्णन करते हैं वह Mediator pattern जैसा दिखता है, जिसमें वस्तुओं संदेश के माध्यम से संवाद करती हैं। इन संदेशों को घटनाओं, कॉलबैक, या किसी अन्य तंत्र के रूप में लागू किया जा सकता है।
आप MVVM Light के Messenger
वर्ग की तरह एक कार्यान्वयन इस्तेमाल कर सकते हैं (इस ढांचे WPF और Silverlight के साथ प्रयोग के लिए बनाया गया है, लेकिन आप इस विशेष वर्ग के लिए कोड प्राप्त और WinForms में उपयोग कर सकते हैं)
// Register for a specific message type
Messenger.Default.Register<TypeOfTheMessage>(this, DoSomething);
...
// Called when someone sends a message of type TypeOfTheMessage
private void DoSomething(TypeOfTheMessage message)
{
// ...
}
// Send a message to all objects registered for this type of message
Messenger.Default.Send(new TypeOfTheMessage(...));
एक स्थिर घटना पर Messenger
वर्ग का एक बड़ा फायदा यह है कि यह कमजोर संदर्भों का उपयोग करता है, इसलिए यह सब्स्क्राइब्ड ऑब्जेक्ट्स के कचरा संग्रहण को रोकता नहीं है, जो स्मृति रिसाव के जोखिम को कम करता है।
Messenger
वर्ग के बारे में जानकारी के लिए this link देखें
स्रोत
2010-12-17 23:52:31
यदि आप इस तरह से जाते हैं तो मेमोरी लीक से सावधान रहें ... ईवेंट अपने हैंडलरों के लिए मजबूत संदर्भ रखेगा, और यदि आप –
सदस्यता रद्द नहीं करते हैं तो उन्हें एकत्रित होने से रोक देगा। ईवेंट में अपने हैंडलर के लिए मजबूत संदर्भ कैसे हैं ये मामला? क्या आप विस्तार से समझा सकते हैं? – AllSolutions
@AllSolutions, क्योंकि परिभाषा के अनुसार ईवेंट हैंडलरों के संदर्भ में हैं। यह सिर्फ स्थिर घटनाएं स्थिर होने के बाद कभी भी गुंजाइश से बाहर नहीं जाती हैं, जबकि इंस्टेंस ईवेंट एकत्रित होने पर युक्त ऑब्जेक्ट के साथ गुंजाइश से बाहर हो जाता है। –