নকশা নিদর্শন সরঞ্জাম। সরঞ্জামগুলির মতো, এগুলি ব্যবহারের দুটি উপায় রয়েছে: সঠিক উপায় এবং ভুল উপায়। উদাহরণস্বরূপ, যদি আমি তোমাকে একটা স্ক্রু ড্রাইভার এবং একটি পেরেক, দিতে এবং কাঠের দুই টুকরা একসঙ্গে যোগ দিতে চান, আপনি উচিত আমাকে একটা হাতুড়ি জন্য জিজ্ঞাসা করুন। হাতুড়ি নখের জন্য ব্যবহৃত হয়, স্ক্রু ড্রাইভারগুলি স্ক্রুগুলির জন্য ব্যবহৃত হয়।
খুব প্রায়ই, একটি নকশার প্যাটার্নটি ওয়ান ট্রু ওয়ে হিসাবে বিজ্ঞাপন দেওয়া হয়, যা নির্দিষ্ট সমস্যা দেখা দিলে প্রায়শই সত্য। জুনিয়র বিকাশকারীরা প্রায়শই বাচ্চাদের মতো হয় যখন তারা খেলতে নতুন কিছু খুঁজে পায়; তারা সেই ডিজাইনের প্যাটার্নটি সমস্ত কিছুতে প্রয়োগ করতে চায় । এবং এর সাথে অন্তর্নিহিত কোনও ভুল নেই, যতক্ষণ না তারা অবশেষে শিখবে যে প্যাটার্ন এ প্রব্লেম বিয়ের জন্য প্রযোজ্য, এবং প্যাটার্ন সি প্রব্লেম ডি-তে প্রযোজ্য যেমন আপনি নখ চালানোর জন্য কোনও স্ক্রু ড্রাইভার ব্যবহার করেন না, আপনি কোনও নির্দিষ্ট ব্যবহার করবেন না প্যাটার্ন কেবল কারণ এটি বিদ্যমান; আপনি প্যাটার্নটি ব্যবহার করেন কারণ এটি কাজের জন্য সেরা (পরিচিত) সরঞ্জাম।
নিদর্শনগুলির ফ্লিপ সাইডটি অ্যান্টি-প্যাটার্নগুলি। যে বিষয়গুলি সময় এবং বার বার খারাপ হিসাবে প্রমাণিত হয়েছে, সাধারণত সম্পাদনের সময় বা স্মৃতির ক্ষেত্রে। যাইহোক, নিদর্শন এবং অ্যান্টি-প্যাটার্ন উভয়ই বিকাশকারীদের পক্ষে ভাল হয় না যা তারা কেন বিদ্যমান তা বুঝতে পারে না । বিকাশকারীরা ভাবতে চায় যে তারা যা করছে তা নতুন এবং উদ্ভাবনী, তবে বেশিরভাগ সময় তারা তা করে না। সম্ভবত এটি আগে চিন্তা করা হয়েছিল। অভিজ্ঞতার কারণে তাদের পূর্বের লোকেরা নিদর্শনগুলি তৈরি করেছে।
অবশ্যই, জুনিয়র বিকাশকারীরা প্রায়শই পুরানো জিনিসগুলি করার নতুন উপায় নিয়ে আসে বলে মনে হয় এবং কখনও কখনও সেগুলি আরও ভাল হয়। তবে, প্রায়শই এটি ডানিং-ক্রুগার প্রভাবের ঘটনা হিসাবে শেষ হয়; বিকাশকারী একটি কার্যকরী প্রোগ্রাম করার জন্য যথেষ্ট জানেন তবে তাদের নিজস্ব সীমাবদ্ধতা বুঝতে পারে না। এটি অতীত হওয়ার একমাত্র উপায় মনে হয় অভিজ্ঞতার মধ্য দিয়ে, ইতিবাচক এবং নেতিবাচক উভয়ই। তারা নিদর্শনগুলি উপেক্ষা করে কারণ তারা নিজেদেরকে উন্নত বলে বিশ্বাস করে তবে বাস্তবে 10,000 টি বিকাশকারী একটি সুনির্দিষ্ট নকশা ব্যবহার করেছেন এবং এটি এড়িয়ে গেছে কারণ এটি আসলে খারাপ ছিল।
চটজলদি ক্লায়েন্টের চাহিদা ক্রমহ্রাসমানের সাথে দ্রুত সামঞ্জস্য করার ক্ষেত্রে "জিনিসগুলি প্রতিক্রিয়াশীলভাবে সম্পন্ন করার পক্ষপাতী" ors এটি নকশার নিদর্শনগুলির পক্ষে নয়, তাদের তুচ্ছ করে না। যদি কোনও প্যাটার্নটি দ্রুত, সবচেয়ে নির্ভরযোগ্য পদ্ধতি হয় তবে বিকাশকারী এটি ব্যবহার করা উচিত। যদি কোনও নির্দিষ্ট প্যাটার্নটি কেবল "সম্পন্ন করার" চেয়ে বেশি সময় ব্যয় করে তবে এমন কিছু ব্যবহার করা সম্ভবত যা ঠিক নয় (ধরে নেওয়া যায় যে অবশ্যই সেই কর্মক্ষমতা মারাত্মকভাবে অবনমিত হয় না ইত্যাদি)। যদি কোনও পরিচিত প্যাটার্নটি পাওয়া যায় না, তবে ক্লায়েন্টকে "না" বলার চেয়ে তাদের নিজস্ব ডিজাইনিং পছন্দ করা হয়। গ্রাহকরা, বিশেষত পরিশোধিত ক্লায়েন্টরা সাধারণত সঠিক থাকে।
যে কেউ দাবি করেন যে নিদর্শনগুলি দ্য ওয়ে, বা দাবি করেছেন যে নিদর্শনগুলি অস্তিত্বের নিষিদ্ধ, ভুল, প্যাটার্নগুলি হ'ল সরঞ্জামগুলি, নির্দিষ্ট পরিস্থিতিতে প্রয়োগ করা হতে পারে এবং পরিস্থিতিতে বিভিন্ন সাফল্যের বিভিন্ন ডিগ্রি রয়েছে। এটি সত্য, আপনি এমভিসি বা না বেছে নেওয়ার উপর নির্ভর করে না, যদি আপনি ডেটা ট্রান্সফার অবজেক্টগুলি ব্যবহার করেন বা না করেন ইত্যাদি etc. কোন বিষয়গুলি যুক্তিযুক্ত স্বল্প সময়ের ফ্রেমে কোড প্রয়োগ করছে, যা ব্যবহারকারীদের জন্য যুক্তিসঙ্গতভাবে ভাল সম্পাদন করে, এবং যুক্তিযুক্ত ত্রুটিযুক্ত যুক্তিসঙ্গত মুক্ত।
সাধারণত , নিদর্শনগুলি সুসংগত রূপের নকশাকে মঞ্জুরি দেয় এবং 100% মূল ধারণা লেখার পক্ষে সমস্ত নিদর্শন উপেক্ষা করার চেয়ে আরও ভাল সম্পাদন করবে তবে আপনি সমস্ত নিদর্শন এড়াতে পারবেন না। উদাহরণস্বরূপ, যদি y = x + 5, আপনি কি সত্যিই y = x + (5 * 3 + 15/3) / 4 লিখতে চলেছেন, কেবল x + 5 লেখার ধরণটি এড়াতে? না তুমি নও. আপনি y = x + 5 লিখতে চলেছেন এবং পরবর্তী সমস্যার দিকে এগিয়ে যাচ্ছেন।
লোকেরা প্রতিদিন নিদর্শন ব্যবহার করে এবং এটি ঠিক আছে । যে বিষয়টি সবচেয়ে বেশি গুরুত্বপূর্ণ তা কোডটি যা যৌক্তিকভাবে কার্যকর, খুব কমই ক্র্যাশ হয় এবং এটি ব্যবহারকারী-বান্ধব। এর চেয়ে গুরুত্বপূর্ণ আর কিছু নয়।