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