মূল বইটিতে যা পর্যবেক্ষক এবং মধ্যস্থতাকারী, নকশার প্যাটার্নস, পুনরায় ব্যবহারযোগ্য অবজেক্ট-ওরিয়েন্টড সফ্টওয়্যার এর উপাদানগুলি তৈরি করেছে তাতে বলা হয়েছে যে পর্যবেক্ষক নিদর্শনটি ব্যবহার করে মধ্যস্থতাকারী প্যাটার্ন প্রয়োগ করা যেতে পারে। তবে এটি কলেজিয়েগস (পর্যবেক্ষক প্যাটার্নের সাবজেক্টগুলির সমতুল্য সমতুল্য) মধ্যস্থতাকারী শ্রেণি বা মধ্যস্থতা ইন্টারফেসের সাথে একটি রেফারেন্স থাকার পরেও এটি প্রয়োগ করা যেতে পারে।
এমন অনেকগুলি ক্ষেত্রে রয়েছে যখন আপনি পর্যবেক্ষক প্যাটার্নটি ব্যবহার করতে চান, তারা কী হ'ল অবজেক্টটিতে অন্য অবজেক্টের কী অবস্থা তা পর্যবেক্ষণ করছে তা জানা উচিত নয়।
মধ্যস্থতা কিছুটা সুনির্দিষ্ট, এটি কোনও মধ্যস্থতার মাধ্যমে ক্লাস সরাসরি যোগাযোগ করা এড়িয়ে যায়। এটি কেবলমাত্র পরিচালনা করে এমন একটি শ্রেণিতে যোগাযোগকে অফলোড করার অনুমতি দেওয়ার মাধ্যমে একক দায়িত্বের নীতিটিকে সহায়তা করে।
একটি ক্লাসিক মধ্যস্থতার উদাহরণ একটি জিইউআইতে রয়েছে, যেখানে নিষ্ক্রিয় পদ্ধতির বোতাম ক্লিক ইভেন্টে কোড আসতে পারে "যদি ফু প্যানেলটি অক্ষম থাকে এবং বার প্যানেলে" দয়া করে তারিখ লিখুন "বলে একটি লেবেল থাকে তবে সার্ভারটি কল করবেন না, অন্যথায় এগিয়ে যান ", যেখানে মধ্যস্থতার প্যাটার্নের সাহায্যে এটি বলতে পারে" আমি কেবল একটি বোতাম এবং ফু প্যানেল এবং বার প্যানেলে লেবেল সম্পর্কে জানার কোনও পার্থিব ব্যবসা নেই, তাই সার্ভারকে কল করলে আমি কেবল আমার মধ্যস্থকে জিজ্ঞাসা করব এখনই ঠিক আছে। "
অথবা, যদি এটি পর্যবেক্ষক প্যাটার্ন ব্যবহার করে বাস্তবায়ন করা হয় বাটনটি বলবে "আরে, পর্যবেক্ষকরা (এতে মধ্যস্থতাকারী অন্তর্ভুক্ত থাকবে), আমার রাষ্ট্র পরিবর্তন হয়েছে (কেউ আমাকে ক্লিক করেছে)। যদি আপনি যত্নবান হন তবে এটি সম্পর্কে কিছু করুন"। আমার উদাহরণে এটি সম্ভবত কম বোধগম্য হয় তবে কখনও কখনও এটি হয় এবং পর্যবেক্ষক এবং মধ্যস্থতার মধ্যে পার্থক্য কোডের মধ্যে একটি পার্থক্যের চেয়ে অভিপ্রায়গুলির একটি হতে পারে।