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