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