কোন ডিজাইনের প্যাটার্নটি ব্যবহার করবেন? [বন্ধ]


104

আমি নকশার নিদর্শনগুলি খুব পছন্দ করি তবে আমি কখন এটি প্রয়োগ করতে পারি তা দেখতে আমার অসুবিধা হয়। আমি প্রচুর ওয়েবসাইট পড়েছি যেখানে নকশার নিদর্শনগুলি ব্যাখ্যা করা হয়েছে। আমি তাদের বেশিরভাগটিই বুঝতে পারি, তবে আমার নিজের পরিস্থিতিতে একটি প্যাটার্নটি সনাক্ত করা আমার পক্ষে কঠিন।

সুতরাং, আমি এই প্রশ্ন জিজ্ঞাসা কেন। কোন ডিজাইনের প্যাটার্নটি ব্যবহার করার জন্য কোনও গাইডলাইন / অ্যালার্ম বেল রয়েছে কি?

উদাহরণস্বরূপ, আপনি কোন বিষয়টি তৈরি করতে হবে তা নির্ধারণ করতে যদি আপনি একটি স্যুইচ স্টেটমেন্ট করছেন তবে আপনি সম্ভবত কারখানার নকশার প্যাটার্নটি ব্যবহার করতে চান। সুতরাং এই ক্ষেত্রে স্যুইচ বিবৃতিটি কারখানার প্যাটার্নটি ব্যবহার করার জন্য একটি 'অ্যালার্ম বেল'।

সুতরাং, আপনি কি ডিজাইনের ধরণ নির্ধারণ করতে আরও 'অ্যালার্ম ঘন্টা' জানেন?


6
সাধারণত আমি যে প্যাটার্নের বিবরণ দেখি সেগুলির মধ্যে পরিস্থিতিগুলির বিবরণ অন্তর্ভুক্ত থাকে যেখানে আপনি সেই নকশার প্যাটার্নটি চান।
আর মার্টিনহো ফার্নান্দেস

উত্তর:


99

সাধারণত প্রক্রিয়াটি অন্যদিকে other ডিজাইনের নিদর্শনগুলি কোথায় ব্যবহার করা যায় সে পরিস্থিতিতে সন্ধান করবেন না, অনুকূলিত হতে পারে এমন কোডের সন্ধান করুন। আপনার যদি এমন কোড থাকে যে আপনি ভাবেন যে সঠিকভাবে কাঠামোগত নয়। এমন একটি নকশার প্যাটার্ন সন্ধান করার চেষ্টা করুন যা সমস্যার সমাধান করবে।

ডিজাইন নিদর্শনগুলি আপনাকে কাঠামোগত সমস্যাগুলি সমাধান করতে সহায়তা করতে বোঝায়, ডিজাইনের নিদর্শনগুলি ব্যবহার করতে সক্ষম হতে কেবল আপনার অ্যাপ্লিকেশনটি ডিজাইন করবেন না।


23
কেবল কাঠামোগত সমস্যাই নয়, আচরণগত এবং সৃষ্টিশীল সমস্যাগুলিও।
ডেভডেমন

1
ডিজাইন নিদর্শনগুলি পরীক্ষিত, প্রমাণিত উন্নয়নের দৃষ্টান্ত সরবরাহ করে উন্নয়নের প্রক্রিয়াটিকে গতিময় করতে পারে। কার্যকর সফ্টওয়্যার ডিজাইনের ক্ষেত্রে এমন সমস্যা বিবেচনা করা দরকার যা বাস্তবায়নের পরে অবধি দৃশ্যমান নাও হতে পারে। নকশার ধরণগুলি পুনরায় ব্যবহার করা সূক্ষ্ম সমস্যাগুলি রোধ করতে সহায়তা করে যা বড় সমস্যা তৈরি করতে পারে এবং কোডার এবং আর্কিটেক্টদের সাথে নিদর্শনগুলির সাথে পরিচিতদের জন্য কোডের পাঠযোগ্যতার উন্নতি করে।
সাদ্দামবিনশেড

5

এগুলি শিখুন এবং আস্তে আস্তে আপনি এগুলি কখন ব্যবহার করবেন তা পুনরায় সংশোধন করতে এবং তা নির্ধারণ করতে সক্ষম হবেন। সিঙ্গলটন প্যাটার্ন হিসাবে সাধারণ কিছু দিয়ে শুরু করুন :)

যদি আপনি কোনও অবজেক্টের একটি উদাহরণ তৈরি করতে চান এবং কেবল একটি। আপনি সিঙ্গলটন প্যাটার্ন ব্যবহার করুন। ধরা যাক আপনি একটি অপশন অবজেক্ট দিয়ে একটি প্রোগ্রাম তৈরি করছেন। আপনি তাদের বেশ কয়েকটি চান না, এটি নির্বোধ হবে। সিঙ্গলটন নিশ্চিত করে যে একের বেশি কখনও হবে না। একক প্যাটার্নটি সহজ, প্রচুর ব্যবহৃত এবং সত্যই কার্যকর।


17
যখন আপনার কেবলমাত্র একটি উদাহরণ প্রয়োজন তখন সিঙ্গলটন সত্যই নয় । সিঙ্গলটন হ'ল যখন আপনাকে একটি উদাহরণ সীমাবদ্ধ করতে হবে। আপনার যখন কেবল একটি উদাহরণ প্রয়োজন , আপনি কেবলমাত্র একটি উদাহরণ তৈরি করতে এবং এটি ব্যবহার করার চেষ্টা করতে পারেন।
আর মার্টিনহো ফার্নান্দেস

এছাড়াও, কিছু জায়গায় সিঙ্গলটন খুব দরকারী এবং প্রয়োজনীয়, যখন প্রয়োজন হয় না তখন এটি প্রয়োগ করা খুব সহজ প্যাটার্নও। আপনি যেমন এখানে ইঙ্গিত করেছেন, এবং ফার্নান্দিস যেমন বলেছেন, আপনার সম্ভবত এটির দরকার নেই। প্রকৃতপক্ষে, একটি সিঙ্গলটন প্যাটার্ন ব্যবহার সম্ভাব্য (সম্ভবত) কোডের গন্ধের একটি ভাল চিহ্ন। কোনও পরিষেবা শ্রেণীর জন্য এটি ব্যবহার করা সম্ভবত কোডের গন্ধের চেয়ে বেশি। আপনার মতো ডিআইআই লাগছে, সিঙ্গলটন নয়। কিছু লোক তাদের সেভাবে ব্যবহার করে। বিশেষত ছোট (গুরুত্বহীন) কোড, বা পোকের জন্য। তবে আমি যেমন বলেছি কিছু কার্যকর ব্যবহার রয়েছে are কিছু করার সহজ উপায় এবং কেবল এটি সন্ধান করবেন না।
সুমেরে

4

আমি পিটার রাসমুসেনের সাথে সম্পূর্ণ সম্মত।

নকশা নিদর্শনগুলি সাধারণত ঘটে যাওয়া ডিজাইন সমস্যার সাধারণ সমাধান সরবরাহ করে।

আমি চাই আপনি নীচের পদ্ধতির অনুসরণ করুন।

  1. প্রতিটি প্যাটার্নের উদ্দেশ্য বুঝতে
  2. চেকলিস্ট বুঝতে বা প্রতিটি প্যাটার্নের কেস ব্যবহার করুন
  3. আপনার সমস্যার সমাধানের কথা ভাবেন এবং আপনার সমাধানটি নির্দিষ্ট প্যাটার্নের চেকলিস্টে পড়ে কিনা তা পরীক্ষা করে দেখুন
  4. যদি তা না হয় তবে কেবল নকশার ধরণগুলি উপেক্ষা করুন এবং নিজের সমাধানটি লিখুন।

উপকারী সংজুক:

উত্স তৈরি : উদ্দেশ্য , কাঠামো এবং চেকলিস্ট ব্যাখ্যা করে Exp সি ++ এবং জাভা সহ একাধিক ভাষায় সুন্দরভাবে

উইকিপিডিয়া : কাঠামো, ইউএমএল ডায়াগ্রাম এবং সি # এবং জাভা সহ একাধিক ভাষায় কাজের উদাহরণ ব্যাখ্যা করে।

প্রতিটি সোর্সমেডিং ডিজাইন-প্যাটার্নে চেক তালিকা এবং থাম্বের বিধিগুলি আপনি খুঁজছেন এমন আলরাম বেল সরবরাহ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.