পর্যবেক্ষক ডিজাইন প্যাটার্ন এক ধরণের পডকাস্টের মতো

যদি আপনি পডকাস্টগুলি শোনেন তবে আপনি পর্যবেক্ষক প্যাটার্নটির সাথে ইতিমধ্যে পরিচিত। আসলে, আপনি একজন "পর্যবেক্ষক"।

পর্যবেক্ষক প্যাটার্নের জন্য এখানে সংজ্ঞা রয়েছে:

পর্যবেক্ষক প্যাটার্ন বস্তুর মধ্যে এক থেকে একাধিক নির্ভরতা সংজ্ঞায়িত করে যাতে যখন কোনও বস্তুর স্থিতি পরিবর্তন হয়, তখন এর সমস্ত নির্ভরশীল স্বয়ংক্রিয়ভাবে বিজ্ঞাপিত হয় এবং আপডেট হয়।

পডকাস্ট সম্পর্কিত সম্পর্কিত সংজ্ঞাটি দেখি।

আমি বিকাশকারী চা নামের একটি আকর্ষণীয় পডকাস্ট পেয়েছি।

সাবস্ক্রাইব বোতামটি ক্লিক করার পরে, আমি এখন তাদের গ্রাহক তালিকায় আছি।

বিকাশকারী চা যখন একটি নতুন পর্ব প্রকাশ করে, অ্যাপটি আমাকে এবং অন্যান্য গ্রাহকদের অবহিত করবে। এটি আমাদের জন্য নতুন পর্বটি ডাউনলোড করে।

এটি হ'ল পর্যবেক্ষক প্যাটার্নের সংজ্ঞা!

পর্যবেক্ষক প্যাটার্ন বস্তুর মধ্যে এক থেকে একাধিক নির্ভরতা সংজ্ঞায়িত করে যাতে যখন কোনও বস্তুর স্থিতি পরিবর্তন হয়, তখন এর সমস্ত নির্ভরশীল স্বয়ংক্রিয়ভাবে বিজ্ঞাপিত হয় এবং আপডেট হয়।

বিকাশকারী চা পডকাস্ট এবং গ্রাহকদের মধ্যে একের সাথে একাধিক সম্পর্ক রয়েছে is

বিকাশকারী চা যখন একটি নতুন পর্ব প্রকাশের মতো অবস্থা পরিবর্তন করে তখন বিকাশকারী চায়ের সমস্ত গ্রাহককে বিজ্ঞাপিত এবং আপডেট করা হয়।

আসুন এটি রুবিতে বাস্তবায়ন করি।

একটি সাধারণ সংস্করণ দিয়ে শুরু করুন।

পডকাস্ট ক্লাস এপিসোডগুলির একটি তালিকা ধারণ করে এবং তালিকায় যোগ_পর্বের একটি পদ্ধতি রয়েছে।

তারপরে আমরা বিকাশকারী_টিয়া পডকাস্ট তৈরি করতে পারি এবং এটিতে এটিতে পর্ব # 1 যুক্ত করতে পারি:

যখনই নতুন পর্ব প্রকাশিত হবে আমি একটি বিজ্ঞপ্তি পেতে চাই।

তালিকায় একটি নতুন পর্ব যুক্ত করার পরে আমরা আমাকে আপডেট করতে পারি:

এবং যখনই আমি বিকাশকারী_টায়ার কাছ থেকে আপডেট পাই, আমি এগিয়ে গিয়ে সর্বশেষ পর্বটি ডাউনলোড করতে পারি।

আমি বিকাশকারী_টায় শুনে এত উপভোগ করি যে আমি এটি আমার বন্ধু, আম্বরের কাছে সুপারিশ করি। এখন, অ্যাম্বারও এটিতে সাবস্ক্রাইব করতে চায়।

আমাদের নিশ্চিত করা দরকার যে যখনই নতুন পর্ব প্রকাশিত হয় অ্যাম্বার একটি বিজ্ঞপ্তি পেয়েছে:

হুম, এই কোডটি আমরা যা চাই তা করে।

কিন্তু একটি সমস্যা আছে.

প্রতিবার আমরা কোনও গ্রাহক যুক্ত করতে চাইলে আমাদের ক্লাসটি নতুন করে সংজ্ঞায়িত করতে হবে।

ক্লাসটির নতুন সংজ্ঞা না দিয়ে গ্রাহক তালিকা আপডেট করার কোনও উপায় আছে?

আমরা গ্রাহক তালিকা রাখতে পারি!

নতুন পডকাস্ট ক্লাস দুটি নতুন পদ্ধতির সাহায্যে গ্রাহক তালিকা রাখে: একটি গ্রাহক যুক্ত করার জন্য এবং একটি গ্রাহক অপসারণের জন্য। কোনও পর্ব প্রকাশিত হলে আমরা প্রতিটি গ্রাহককে আপডেট করি।

দুর্ভাগ্যক্রমে, অ্যাম্বার আমার মতো পডকাস্টটি উপভোগ করে না এবং সাবস্ক্রাইব করার সিদ্ধান্ত নেয়। আমরা তাকে সাবস্ক্রাইবার তালিকা থেকে সরানোর জন্য মুছে ফেলা সাবস্ক্রাইবার পদ্ধতিটি ব্যবহার করি।

Yay! আপনি সবেমাত্র পর্যবেক্ষক প্যাটার্ন শিখেছেন!

পর্যবেক্ষক নিদর্শন পিছনে নকশা নীতি।

পর্যবেক্ষক প্যাটার্নটি আলগা কাপলিং ডিজাইনের নীতিটি ব্যবহার করে:

ইন্টারঅ্যাক্ট করে এমন বস্তুর মধ্যে স্বচ্ছভাবে মিলিত নকশার জন্য প্রচেষ্টা করুন।

পডকাস্ট ক্লাসটি তার গ্রাহকদের সম্পর্কে বেশি কিছু জানে না। এটি কেবলমাত্র প্রতিটি গ্রাহকের একটি আপডেট পদ্ধতি আছে তা জানে।

এই আলগা দম্পতি পডকাস্ট এবং এর গ্রাহকদের মধ্যে নির্ভরতা হ্রাস করে। এটি নমনীয়তাও সর্বাধিক করে তোলে। যতক্ষণ না এটির আপডেট পদ্ধতি রয়েছে, গ্রাহক যে কোনও কিছু হতে পারে: একটি মানুষ, একদল লোক, একটি প্রাণী বা এমনকি একটি গাড়ি।

takeaways:

  1. পর্যবেক্ষক প্যাটার্ন বস্তুর মধ্যে এক থেকে একাধিক নির্ভরতা সংজ্ঞায়িত করে যাতে যখন কোনও বস্তুর স্থিতি পরিবর্তন হয়, তখন এর সমস্ত নির্ভরশীল স্বয়ংক্রিয়ভাবে বিজ্ঞাপিত হয় এবং আপডেট হয়।
  2. আলগা কাপলিং ডিজাইনের নীতি: যে বস্তুগুলি ইন্টারঅ্যাক্ট করে তার মধ্যে স্বচ্ছভাবে মিলিত ডিজাইনের জন্য প্রচেষ্টা করুন।

পড়ার জন্য ধন্যবাদ. আপনি যে অবজারভার প্যাটার্নটির কথা ভাবতে পারেন তার কোনও বাস্তব জীবনের উদাহরণ রয়েছে?

আমি সাপ্তাহিক sihui.io এ প্রকাশ করি।

সাবস্ক্রাইব করুন যাতে সিরিজ থেকে পরবর্তী নিবন্ধটি আপনি মিস করবেন না।

পরের বার আমরা ...